Henryk Plötz: MySQL Result abfragen

Beitrag lesen

Moin,

Ansichtsache ;-)

Nicht wenn du mit größeren Mengen rumhantierst, dann ist mysql_fetch_array laut Doku deutlich schneller.

Da muß ich dich leider enttäuschen, das klappt wunderbar. Habe es bereits so zugewiesen und es läuft einwandfrei (ist ja auch der genaue Befehl aus SQL). Und Anführungszeichen kommen da gar nicht rein, denn es wird ja eine Spalte über den Namen angesprochen!
Beispiel:
$result=mysql_query("select Name from Personal where ID='$id');
$name=mysql_result($result,Name);

Dass es funktioniert bedeutet ja noch nicht dass es richtig ist :)
Also: Wenn du Name ohne $ davor oder " davor und dahinter schreibst, dann denkt PHP dass du eine Konstante namens Name benutzen willst und weil die nicht definiert ist, denkt es du möchtest den Namen der Konstante benutzen. echo Name; gibt also tatsächlich
Name
aus. Das ist aber reiner Zufall und du solltest dich darauf nicht verlassen. Daher: _Immer_ wenn du einen String benutzen willst, setze ihn in Anführungsstriche. (Dieses Verhalten ist denke ich dafür da, dass die Blindgänger auch mal $einlustigesArray[haha] sagen können, wenn sie eigentlich $einlustigesArray["haha"] meinen)

OK, wie wir eben festgestellt haben, rufst du also mysql_result($result, "Name") auf. Was als nächstes passiert: PHP schaut sich den zweiten Parameter an und weil es eigentlich einen Integer (die Nummer der Zeile) erwartet hat, wandelt es ihn in einen Integer um. Aus dem "Name" wird also 0. Dann geht die Funktion ans Werk und liefert dir Daten aus der 0. Zeile und weil du vergessen hast anzugeben welche Spalte du willst nimmt es (afaik) ebenfalls die 0.
Dass das nun rein zufällig genau das ist was du haben wolltest, dafür kann PHP nichts. Aber es ist auf jedenfall nicht das passiert was du dachtest das passiert.

Probier es aus:
mysql_result($result, "Name")
mysql_result($result, blabla)
mysql_result($result, 0)
mysql_result($result, 0, "Name") <-- Das wäre die richtige Schreibweise für das was du willst
bringen alle exakt das selbe Ergebnis.

--
Henryk Plötz
Grüße aus Berlin