mysql, array und smarty

kase

Erfahrenes Mitglied
Hallo,

ich sitze schon den halben Vormittag dran und komme einfach nicht weiter :-(
Ich möchte sozusagen ein Archiv oder einen Index machen, also es sollen alle eingetragenen Datensätze angezeigt werden.

In PHP mache ich darum folgendes:
PHP:
$dbquery	= mysql_query("
			SELECT 
				*
			FROM 
				`".$dbprf."content` 
									")or die("ERROR");
			while ($dbrow = mysql_fetch_array($dbquery)) {
			extract($dbrow);
			$contentarrayroh = array(	
								'id'	=> $id,
								'ident'	=> $ident,
                                'title'	=> $title,
                                'text'	=> $text
								);
							
			}			
			
			$contentarray = array(
							$contentarrayroh
                            	 );
			
		$smarty->assign("inhaltstext", $contentarray);

Das scheint aber schonmal falsch zu sein,
PHP:
...
extract($dbrow);
			$contarray = array(
							array(	
								'id'	=> $id,
								'ident'	=> $ident,
                                'title'	=> $title,
                                'text'	=> $text
								));
							
			}			
			
			
		$smarty->assign("inhaltstext", $contentarray);
geht aber auch nicht

Im smarty template versuche ich folgendes:

PHP:
{foreach from=$inhaltstext item=foo}
					<a href="{$system_webpath}p_content/{$foo.ident}" title="Inhalt ansehen"><b>- </b>{$foo.title}</a><br />
					
			{/foreach}

Ich bekomme jetzt nur den letzten Datensatz angezeigt.

Ich hoffe jemand kann mir helfen, vielleicht gehe ich die Sache ja auch Falsch an.


Danke,
kase
 
PHP:
	$contentarrayroh = array(	
								'id'	=> $id,
								'ident'	=> $ident,
                                'title'	=> $title,
                                'text'	=> $text
								);
							
			}

Hier ueberschreibst du immer wieder die aktuell geholte Zeile.

PHP:
	$contentarray = array(
							$contentarrayroh
                            	 );

Und hier weist du die als letztes geholte Zeile dem Ausgabearray zu.

Wenn es keine zwingende gründe gegen eine Auswahl der Spalten im SQL Statement gibt wuerde meine Loesung so aussehen:

PHP:
    $contentarray = array();

    $dbquery = mysql_query("
        SELECT 
            id,
            ident,
            title,
            text
        FROM 
            `".$dbprf."content` 
    ") or die("ERROR");

    while ($dbrow = mysql_fetch_assoc($dbquery)) {
        $contentarray[] = $dbrow;
    }

    $smarty->assign("inhaltstext", $contentarray);

Zuerst waehlst du die Spalten per SQL aus.
Dann holst du die Zeilen nacheinander aus dem Result und speicherst sie als als letztes Element im Array ($contentarray[] = $dbrow).
 
Zurück