j4nk3y: Merkwürdiges Verhalten bei mySQL Anfrage

Beitrag lesen

Hey,

An diesem Punkt hängst du die Ergebnisse aller der ersten folgenden Datenbankabfragen an die alten Ergebnisse an, mit denen $array immer noch bestückt isr. Deshalb bekommst du auch diese Liste:

Bei ersten Durchlauf der Hauptschleife gibt es sechs Ergebnisse, "6 7 8 9 10 11".

Beim ihrem zweiten Durchlauf erscheint "6 7 8". Dies sind die Ergebnisse aus dem ersten Durchlauf, und da der zweite Durchlauf drei Ergebnisse geliefert hat (in $num), erscheinen nur die ersten drei Daten des ersten Durchlaufs.

Ja genau da liegt der Fehler, danke.

For($a = 0; $a < $num ; $a++)
{
  $pid = $array[$a][0];
  echo $pid.'</br>';
}

Es ist persönlicher Stil, aber mir ist schon anfangs aufgefallen, dass du viele Variablen einsetzt. Wenn ich $array durchlaufe, dann mit entweder mit array_length($array) (oder heisst das size() bei PHP?), nicht mit dem Ergebnis aus mysql_num_rows() (welches du in $num zwischengeparkt hast). Oder aber gleich mit foreach:

foreach ($array as $a) { echo $a["pid"] . "<br>"; }

Die Finger täte ich an deiner Stelle auch von den numerischen Indizes lassen. $a[0] ist nicht gerade selbsterklärend. MySQL liefert dir auch ein viel schöneres $a["pid"].

Also die foreach Schleife wird mir wahrscheinlich noch lange ein Rätsel bleiben. Und diese Numerische Notation finde ich super da ich hier viel mit Matritzen arbeite und so genau weiß wo und an welcher stelle ich bin. Das hab ich mir am Anfang so angewöhnt und ist einfach geblieben.

Gruß Jo