Spaltenname in DB-Abfrage als Variable
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
alternativ
aussehen
befehlen
beitrag
datensatz
erg
fehler
fragen
funktion
hilfe
mache
manual
result
schreiten
spalt
spalten
tabelle
variable
versehen
versuchen
-
Hi,
ich habe eine Frage, und zwar:
Wie ist es m?glich beim Auslesen einer MySQL-Abfrage eine Spalte mit einer Variablen auszulesen, die den Wert des Spaltennamens hat, also z.B:
while($row = $result)
{
$rst = $row->$name
}
also sprich das statt der Spaltenname in diesem Fall $name steht
Thx im vorraus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du willst also anstatt
"SELECT spalte FROM tabelle"
, dass "spalte" eine Variable ist?
Dann sollte es so in der Art aussehen:
"SELECT ".$spalte." FROM tablle"
Oder hab ich was falsch verstanden? -
ja hast du^^ weil ich bin ein schritt weiter das von dir genannte habe ich bereits =) aber ich bekomm kee l?sung f?r mein genanntes Problem.
ich m?chte ja die Ergebnise auslesen und da muss ma ja auf die Spaltennamen zugreifen, aber die existieren eben nur als Variable, aber PHP liefert mir immer einen Fehler, wenn ich $row->$name oder $row->.$name mache...das is mein Problem -
Hmm ok, dann der n?chste Versuch:
$result=mysql_query("SELECT ".$spalte." FROM tabelle"); while($row=mysql_fetch_array($result)) { $erg=$row[$spalte]; }
K?nnte so gehn, kann aber sein, dass du $row[$spalte] noch mit ' oder '. versehen musst, damit es geht. -
Bevor Du den Datensatz der mySQL-Abfrage weiterverarbeiten kannst, musst Du diesen mit Befehlen wie mysql_fetch_array() oder mysql_fetch_assoc() in ein Array verpacken:
$name = 'Spaltenname'; while($row = mysql_fetch_assoc($result)) { $rst = $row[$name]; } // oder alternativ while($row = mysql_fetch_array($result)) { $rst = $row[$name]; // oder $rst = $row[0]; }
Siehe auch:
http://de.php.net/manual/de/function.mysql-fetch-assoc.php
http://de.php.net/manual/de/function.mysql-fetch-array.php
Beitrag ge?ndert am 10.08.2006 11:19 von compactdisc -
Daf?r bietet sich doch glatt die Funktion eval() an.
http://www.php.net/manual/de/function.eval.php
eval('$row->'.$name);
Das sollte jedenfalls funktionieren, falls ich dein problem richtig verstanden habe...
Edit: Ich glaube er benutzt schon mysql_fetch_object, aber wusste nicht, wie er auf die Spalten, die er in einer Variable gespeichert hat, zugreifen soll....
Beitrag ge?ndert am 10.08.2006 11:21 von i-spacke -
also danke leute f?r die schnelle und gute Hilfe^^ aber leider konnte ich bis jez nix ausprobieren xD
h?ng noch an was anderem :P -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage