sql-Abfrage sortieren

Begonnen von metan, 16 Januar 2005, 22:31:40

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

metan

hallo,

habe folgenden code
$resultCount=sql_query("select count(cid) from ".$prefix."_add_categories where parentid='0'", $dbi);
list($count) = sql_fetch_row($resultCount, $dbi);
$resultMarke=sql_query("select cid, title, parentid from ".$prefix."_add_categories where adds='1' order by parentid DESC", $dbi);

$i = 1;
$j = 1;
while ($i <= $count)
{
while(list($cid, $title, $parentid) = sql_fetch_row($resultMarke, $dbi))
{
if($parentid == 0 && $i==$j)
{

$cidTemp = $cid;
echo "case \"$cid\":\n";
$j=0;
}

if($cidTemp == $parentid)
{
echo "NewOption = new Option(\"$title\", \"$cid\", false, false);\n";
echo "document.addNewCar.modell.options[document.addNewCar.modell.length] = NewOption;\n";
}
}
echo $i.",";
$j=$i;
$i++;
}


das ziel ist, zwei select felde dynamisch zu füllen.
im ersten select-feld die hauptkategorie, im zweiten selectfeld die unterkategorien. nun erhalte ich alle felder sortiert nach der kategoriennummer. die hauptkats erhalten eine null in ihren elternkats (--> hautpkat), die unterkats die id der hauptkat. wenn nun nach der nummer der kats sortiert wird, stehen alle hauptkat oben und die unterkats unten. nun ist es notwending die innere while schleife so oft durchzulaufen, wie es hauptkats gibt.
blöderweise habe ich da einen denkfehler drin und erhalte die ausgabe nicht richtig.

grüße
metan

jubilee

Hallo !
Spätestens nach dem ersten Durchlauf der übergeordneten while-Schleife
ist $i!=$j
weil hier
Zitatif($parentid == 0 && $i==$j)
      {
         
         $cidTemp = $cid;
         echo "case \"$cid\":\n";
         $j=0;
      }
wird $j auf 0 gesetzt .
unten wird zwar $j=$i; gesetzt aber gleich anschließend wird $i++;so dass nach dem ersten Durchlauf der
äusseren while-Schleife $i immer um eines größer als $j ist.
Ist  das so gewollt ?

MfG
jubilee