Mailinglisten-Archive |
Gute Abend Liste, unten stehendes Script läuft bei mir und liefert auch die gewünschten Ergebnisse. Aber die Laufzeit ist, wohl bedingt durch die vielen geschachtelten Querys, einfach miserabel. Wie könnte ich das besser gestalten? Ziel des ganzen ist eine Art virtuelles Kochbuch mit "Kühlschrank und Einkaufshilfe". Das Script hier soll eigentlich nichts anderes machen als sehen was vorhanden ist und diese Liste sinnvoll (um eine Zutat pro Rezept) erweitern, um mal etwas Abwechslung auf den Tisch zu bringen ohne gleich Massig neues Zeugs kaufen zu müssen. Ich hoffe das man sich darunter ein bisschen was vorstellen kann und bedanke mich jetzt schon recht herzlich für eure Hilfe Andreas <?php $Rezepte = mysql_query("select DISTINCT zutaten_einfach.RezeptNr from fav_zutaten,zutaten_einfach where fav_zutaten.ZutatenNr=zutaten_einfach.ZutatenNr"); $Anzahlrezepte = mysql_num_rows($Rezepte); while($i<$Anzahlrezepte) { $FZutat[]=0; $i1 = 0; $Istwert = 0; $Rezept = mysql_fetch_array($Rezepte); $RezeptNr = $Rezept["RezeptNr"]; $Zutaten = mysql_query("select ZutatenNr from zutaten_einfach where zutaten_einfach.RezeptNr='$RezeptNr'"); $Sollwert = _(at)_mysql_numrows($Zutaten); while($i1<$Sollwert) { $ZutatenNr1 = mysql_fetch_array($Zutaten); $ZutatenNr = $ZutatenNr1["ZutatenNr"]; $Abgleich = mysql_query("SELECT ZutatenNr FROM fav_zutaten where fav_zutaten.ZutatenNr ='$ZutatenNr'"); $vorhanden = _(at)_mysql_numrows($Abgleich); if ($vorhanden!=0) { $Istwert++; } /* Bestaetigung, wenn alles uebereinstimmen sollte */ if ($Istwert+1==$Sollwert) { $Fehlende = mysql_query("select zutaten_einfach.ZutatenNr from zutaten_einfach,fav_zutaten where zutaten_einfach.RezeptNr='$RezeptNr' and zutaten_einfach.ZutatenNr!=fav_zutaten.ZutatenNr"); $FehlendeZutat1 = mysql_fetch_array($Fehlende); $FehlendeZutat2 = $FehlendeZutat1["ZutatenNr"]; $FZutat[]=$FehlendeZutat2; } $i1++; } $i++; } _(at)_asort($FZutat); _(at)_reset($FZutat); $FZutat1= _(at)_array_unique($FZutat); $FZutat2 = count($FZutat1); while (($i9+1)<$FZutat2) { $result = next($FZutat1);$i9++; $result2 = mysql_query("select * from zutaten LEFT JOIN fav_zutaten ON zutaten.ID=fav_zutaten.ZutatenNr where '$result'=zutaten.ID and fav_zutaten.ZutatenNr is NULL order by Title"); $Ausgabe = mysql_fetch_array($result2); $vorhandenz = _(at)_mysql_numrows($result2); $Ausgabe1 = $Ausgabe["ID"]; $Ausgabe2 = $Ausgabe["Title"]; if ($vorhandenz!=0) { echo "<td><input type=\"checkbox\" name=\"ZutatenNr[]\"value=\"$Ausgabe1\">$Ausgabe2</td>\n";$td++;$break++; if ($break ==10 ) { break; } while ($td == 3) { echo "</tr><tr>\n";$td =0; } } } ?> -- GMX - Die Kommunikationsplattform im Internet. http://www.gmx.net
php::bar PHP Wiki - Listenarchive