2x While Schleife

Sascha1976

Mitglied
Hallo,
ich habe folgendes Problem.

ich möchte auf einer Seite die Kategorien Ausgeben.

Das soll wie folgt aussehen.

Hauptkategorie 1
Subkategorie 1-1
Subkategorie 1-2
Subkategorie 1-3
Subkategorie 1-4
Subkategorie 1-5

Hauptkategorie 2
Subkategorie 2-1
Subkategorie 2-2
Subkategorie 2-3
Subkategorie 2-4
Subkategorie 2-5


Derzeit bekomme ich das so angezeigt
Hauptkategorie 1
Subkategorie 1-1
Subkategorie 1-2
Subkategorie 1-3
Subkategorie 1-4
Subkategorie 1-5
Subkategorie 2-1
Subkategorie 2-2
Subkategorie 2-3
Subkategorie 2-4
Subkategorie 2-5


Hauptkategorie 2
Subkategorie 1-1
Subkategorie 1-2
Subkategorie 1-3
Subkategorie 1-4
Subkategorie 1-5
Subkategorie 2-1
Subkategorie 2-2
Subkategorie 2-3
Subkategorie 2-4
Subkategorie 2-5

Als Template Engine benutze ich Smarty

Gruß
Sascha


Hier die PHP Datei:
PHP:
        $categories_left_query =db_query("SELECT
                             c.*,
                             cd.*
                         FROM
                             " . categories . " c LEFT JOIN
                             " . categories_description . " cd USING(categories_id)
                         WHERE
                           c.categories_status = '0'
                       and c.parent_id = '0'
                       and cd.language_id='".$language_id."'
                         ORDER BY
                            cd.categories_name LIMIT 0, $ceil");


        while ($categories_left_data = db_fetch_array($categories_left_query)) {

   $subparent = $categories_left_data['categories_id'];

      $module_content_left[]=array(
      				'CATEGORIES_LEFT_ID'=>$categories_left_data['categories_id'],
                    'CATEGORIES_LEFT_NAME'=>$categories_left_data['categories_name']);


        $subcategories_left_query =db_query("SELECT
                             c.*,
                             cd.*
                         FROM
                             " . categories . " c LEFT JOIN
                             " . categories_description . " cd USING(categories_id)
                         WHERE
                           c.categories_status = '0'
                       and c.parent_id = '".$subparent."'
                       and cd.language_id='".$language_id."'
                         ORDER BY
                            cd.categories_name");

        while ($subcategories_left_data = db_fetch_array($subcategories_left_query)) {
      $submodule_content_left[]=array(
      				'SUBCATEGORIES_LEFT_ID'=>$subcategories_left_data['categories_id'],
                    'SUBCATEGORIES_LEFT_NAME'=>$subcategories_left_data['categories_name']);
}

}




 $smarty->assign('submodule_content_left',$submodule_content_left);


  $smarty->assign('module_content_left',$module_content_left);


Das Template sieht wie folgt aus

HTML:
{config_load file="language/language.conf" section="categorie"}
			<table align="center"  cellSpacing="1" class="categorie_table">
				<tr>
					<td bgColor="#f2f2f2"><img height="1" src="images/spacer.gif" width="12" border="0"><font class="headline"><b>{#text_categorie#}</b></font>
					</td>
				</tr>
				<tr>
					<td class="search" vAlign="top" bgColor="white" rowSpan="12">
					<table cellSpacing="0" cellPadding="4" width="100%" border="0" id="table5">
						<tr>
							<td vAlign="top">
							<table border="0" id="table10">
								<tr>
									<td width="50%" vAlign="top">
{foreach name=aussen from=$module_content_left item=module_data_left}
<font class="categorie0"><a href="categories.php?cat={$module_data_left.CATEGORIES_LEFT_ID}"><b>{$module_data_left.CATEGORIES_LEFT_NAME}</b></a></font><br>
{foreach name=aussen from=$submodule_content_left item=submodule_data_left}
<img height="13" src="images/spacer.gif" width="12" border="0"><font class="standard"><a href="categories.php?cat={$submodule_data_left.SUBCATEGORIES_LEFT_ID}">{$submodule_data_left.SUBCATEGORIES_LEFT_NAME}</a></font><br>{/foreach}
<br><br>
{/foreach}
</td>
									<td>
									<img height="13" src="images/spacer.gif" width="12" border="0"></td>
									<td width="50%" vAlign="top">
{foreach name=aussen from=$module_content_right item=module_data_right}
<font class="categorie0"><a href="categories.php?cat={$module_data_right.CATEGORIES_RIGHT_ID}"><b>{$module_data_right.CATEGORIES_RIGHT_NAME}</b></a></font><br><br><br>
{/foreach}
</td>
								</tr>
								</table>
							<br>
							&nbsp;</td>
						</tr>
					</table>
					</td>
				</tr>
			</table>
 
Hi, ich hab da auch so ein ähnliches Problem. Undzwar sitz ich da beim Forum fest und ich bekomme es einfach nicht hin dieses nach Kategorien ausgeben zu lassen, also so hier:
Kategoriename1
- Thema 1
- Thema 2
- Thema 3
Kategoriename2
- Thema 1
- Thema 2

Hab hier schon viel gesucht nix gefunden. Auf der Smaryseite, finde ich, ist das auch nur sehr dürftig beschrieben. Könnte mir einer bitte erklären wie ich es nun lösen kann?

Hier mal meine Scripte, zumindest soweit wie ich gekommen bin :rolleyes:

PHP:
<?php
if($_GET['action'] == "show")
{
  $foren = new Smarty;
  
  $catquery1 = mysql_query("SELECT * FROM forum_cat");
  $catsumme = mysql_num_rows($catquery1);
  
  $fsumquery1 = mysql_query("SELECT * FROM forum_foren");
  $fsumquery2 = mysql_num_rows($fsumquery1);

  $cat_arr = array();

  while($catquery2 = mysql_fetch_array($catquery1))
  {
    $cat_arr[] = $catquery2;
    $cat_id = $catquery2['cat_id'];
    $forenquery1 = mysql_query("SELECT * FROM forum_foren WHERE forum_catid='$cat_id'");
    $foren_arr = array();
    while($forenquery2 = mysql_fetch_array($forenquery1))
    {
      $foren_arr[] = $forenquery2;
    }
  }
  
  $foren -> assign('cat_arr', $cat_arr);
  $foren -> assign('catsum', $catsumme);
  $foren -> assign('foren_arr', $foren_arr);
  $foren -> assign('anzahl', $fsumquery2);
  $foren -> display('foren_show.tpl');
} 
?>

Und hier der Templatekrams:
Code:
{include file="header.tpl" bez="Foren"}
<table >
  <tr>
    <td colspan='2' class='navbodyb'>
      <b>
        Es sind {$anzahl} Foren vorhanden.
      </b>
    </td>
  </tr>
  <tr>
    <td colspan='2' class='navbodyc'>
      &nbsp;
    </td>  
  </tr>  
    {foreach from=$cat_arr item=cat_arr}    
      <tr>      
        <td class='navbodyb' colspan='2'>
          {$cat_arr.cat_name}
        </td>    
      </tr>    
      {foreach from=$foren_arr item=foren_arr}      
        <tr>        
          <td class='navbodyb' width='*'>
            {$foren_arr.forum_name}
          </td>        
          <td class='navbodyb' width='10%'>
            {$foren_arr.forum_beschreibung}
          </td>      
        </tr>    
      {/foreach}  
    {/foreach}  
</table>  
{include file=footer.tpl"}

So bitte bitte eine Erklärung von einem Profi weil mit Smarty bin ich erst seit ca. 2 Wochen dabei *gg*

Danke schonmal...
 

Neue Beiträge

Zurück