Smarty Problem

Sascha1976

Mitglied
Hallo,
ich möchte Kategorien anzeigen lassen, die anzahl der Kategorien stimmt bei der anzeige, aber die Namen werden nicht richtig angezeigt.

Im Template ist nur $categories_left_name zu sehen.

Der Code sieht wie folgt aus

Code:
PHP:
<?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"); 

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


$categories_left_id=$categories_left['categories_id']; 
$categories_left_name=$categories_left['categories_name']; 
$categories_left_show .='<a href="categories.$domain/categories.php?cat=$categories_left_id">$categories_left_name</a><br>'; 

} 


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


?>


Das Template sieht so aus
Code:
{config_load file="language/language.conf" section="home"}
	<table border="0" style="border-collapse: collapse" width="800">
		<tr>
			<td>SUCHE</td>
		</tr>
	</table>
	<br>
		<table border="0" style="border-collapse: collapse" width="800">
			<tr>
				<td width="200">

<!-- KATEGORIEN START -->
<table border="1" style="border-collapse: collapse" width="200" bordercolor="#000000">
	<tr>
		<td colspan="2">&nbsp;</td>
	</tr>
	<tr>
		<td width="10">&nbsp;</td>
		<td width="190">
{$categories_left_show}
</td>
	</tr>
</table>
<!-- KATEGORIEN ENDE -->

</td>
				<td width="10">&nbsp;</td>
				<td>MITTE</td>
				<td width="10">&nbsp;</td>
				<td width="200">RECHTS</td>
			</tr>
		</table>


Weiß jemand von euch woran das liegt ?

Mfg
Sascha
 
Zuletzt bearbeitet:
Wo werden die denn nicht richtig angezeigt?
Also bei mir siehts schön aus in dem Beispiel.. oder was gneua meinst du?

Nichts desto trotz würde ich das anders lösen, damit das "design" aus dem Code draussen bleibt... ;)

Und zwar so dass du im while einfach ein Array zusammenbaust....
PHP:
$data = array();
while ($categories_left_data = db_fetch_array($categories_left_query)) 
 $data[] = $categories_left;

//Array und $domain (wo auch imemr die herkommt zuweisen)
$smarty->assign('c_l_s',    $data);
$smarty->assign('domain', $domain);
//...

Und im Template dann
PHP:
{section name=n loop=$cls}
<a href="categories.{$domain}/categories.php?cat={$cls[n].categories_id}">{$cls[n].categories_name}</a><br>
{/section}

Ggf. könnte man noch ein sectionelse einbauen.... ging nur ums Prinzip der Trennung von design und Code....
 
Hallo,
habs gestern anders gelöst. So funktioniert es ohne Probleme.

Mfg
Sascha

PHP:
<?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");

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

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

}

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


?>

HTML:
{config_load file="language/language.conf" section="home"}
	<table border="0" style="border-collapse: collapse" width="800">
		<tr>
			<td>SUCHE</td>
		</tr>
	</table>
	<br>
		<table border="0" style="border-collapse: collapse" width="800">
			<tr>
				<td width="200" valign="top">

<!-- KATEGORIEN START -->
<table cellpadding="0" cellspacing="0" class="categories_left_table">
	<tr>
		<td colspan="2" class="categories_left_td_header"><center><b>{#text_categories#}</b></center></td>
	</tr>
	<tr>
		<td width="10">&nbsp;</td>
		<td width="190" valign="top">
{foreach name=aussen from=$module_content item=module_data}
<a href="categories.php?cat={$module_data.CATEGORIES_LEFT_ID}">{$module_data.CATEGORIES_LEFT_NAME}</a><br>
{/foreach}
</td>
	</tr>
</table>
<!-- KATEGORIEN ENDE -->

</td>
				<td width="10" valign="top">&nbsp;</td>
				<td valign="top">MITTE</td>
				<td width="10" valign="top">&nbsp;</td>
				<td width="200" valign="top">RECHTS</td>
			</tr>
		</table>
 
Zurück