Schleife mit Unterschleife beim Lesen aus Tabelle
Hanjo
- php
Moin auch,
Ich möchte folgendes tun:
Aus einer Tabelle lesen,
ein Feld (nach dem geordnet wurde)anzeigen,
Den Datensatz anzeigen, solange das o.a. Feld gleich bleibt
Wenn es nicht gleich ist, wieder an den Anfang der Schleife.
So daß ich folgendes bekomme
'Feldinhalt 1
- Zeile (mit Feldinhalt1)
- Zeile (mit Feldinhalt1)
- Zeile (mit Feldinhalt1)
....
Feldinhalt 2
- Zeile (mit Feldinhalt2)
- Zeile (mit Feldinhalt2)
- Zeile (mit Feldinhalt2)
....
bis zum Ende des Resultsets
Mein Versuch haut nicht so recht hin:
while ( $row = mysql_fetch_array($result))
{
$Kat = $row[1];
echo '<span>',$Kat,'</span><br/>';
echo '<ins><ul style="list-style-type:disc;font-family:Verdana, Arial, Helvetica, Sans Serif;font-size:9pt;font-weight : bold;line-height:11pt">';
echo '<li><a href="',$row[3],'">',$row[2],'</a></li>';
while ( $row = mysql_fetch_array($result) and ($row[1] == $Kat))
{
echo '<li><a href="',$row[3],'">',$row[2],'</a></li>';
}
echo '</ul></ins>';
}
Wie geht es besser ?
TIA
Hanjo
Genauer gesagt:
Der letzte Datensatz kommt nicht mir
Huhu Hanjo
eine einfache Lösung wäre z.B. erst alle Ergebnisse in einem
zweidimensionalen assoziativen Array zu sammeln.
Der Key ist dabei die Kategorie.
Also z.B.
$stack = array();
while ( $row = mysql_fetch_array($result))
{
$Kat = $row[1];
$stack[$Kat][] = $row;
}
und danach die Ausgabe
foreach ($stack as $k => $rowstack)
{
printf('<h1>Kategorie: %s</h1>', $k);
foreach ($rowstack as $row)
{
printf ('Eine Zeile %s %s<br>', $row[2], $row[3]);
}
}
so in etwa sollte es klappen.
Viele Grüße
lulu
Danke sehr.
Klappt.
Fast ;-)
Nach dem Abarbeiten jeder Kategorie muß ich
(da sich das ganze auf einer Webpage abspielt)
einen Endtag setzen.
Wie mach ich denn das ?
TIA
Hanjo
Danke, schon selber rausgefunden.
So:
foreach ($stack as $k => $rowstack)
{
echo '<span>',$Kat,'</span><br/>';
echo '<ins><ul style="list-style-type:disc;font-family:Verdana, Arial, Helvetica, Sans Serif;font-size:9pt;font-weight : bold;line-height:11pt">';
foreach ($rowstack as $row)
{
echo '<li><a href="',$row[3],'">',$row[2],'</a></li>';
}
echo '</ul></ins>'; <------------- Hier
}
Hanjo