mir: Merkwürdiges Verhalten bei mySQL Anfrage

Beitrag lesen

> > 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.

Die Schleife läuft einfach alle Feldeinträge nacheinander durch. Statt $a = $array[$i] und dem ganzen Brimborium mit $i < length etc benutzt du direkt $a.

Nicht funktionieren tut's lediglich, wenn du in den Feldeintrag etwas reinschreiben willst. Bei $a = 1 landet die 1 nicht in $array[$i], nur in $a.

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 Problem ist, dass die Datenbank nicht weiss, an welcher Stelle du bist. Und wenn du in einem halben Jahr in den Code schaust, weisst du das auch nicht mehr so genau, glaube mir.

$a[0] ist das erste Datum, aber was das erste Datum ist, siehst du daran nicht. Änderst du die select-Abfrage, kann das erste Datum mit einem Male was ganz anderes sein. Benutzt du * in der select-Abfrage, wird es noch schlimmer, denn dann steht nicht einmal mehr im select fest, was du bekommst, das muss (wenn überhaupt) in der create-table-Struktur nachgelesen werden.

Solche Unklarheiten vermeidest du durch $a["spalte"].

Da du anscheinend matheaffin bist: $a[0] ist im Übrigen auch in wenig unlogisch, denn du möchtest nicht das erste Datum haben, sondern das Datum "spalte".