aus MySQL-DB gezielt Datensätze ausgeben
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beitrag
bestimmte datensatz
bestimmten datensatz
bestimmten spalte
datensatz
fallen
fehler
kleiner fehler
oper
pawort
result
sen
spalt
spalten
stehen
suchfunktion
tabelle
verarbeitung
wort
zeile
-
wie kann ich gezielt einen datensatz aus einer MySQL-DB ausgeben.
und zwar so:
Es soll eine Zelle ausgegeben werden wobei diese aufgrund einer anderen ermittelt wird.
also in der einen zelle steht ein wort... sowas wie eine id... und aufgrund dieser wird dann ein eine weitere spalte dieses datensatzes ausgelesen.
^^hoffe das ich das so richtig erkl?rt habe... mit der suchfunktion bin ich auf keine brauchbaren ergenisse gesto?en.
danke im vorhinein -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
wie kann ich gezielt einen datensatz aus einer MySQL-DB ausgeben.
und zwar so:
Es soll eine Zelle ausgegeben werden wobei diese aufgrund einer anderen ermittelt wird.
also in der einen zelle steht ein wort... sowas wie eine id... und aufgrund dieser wird dann ein eine weitere spalte dieses datensatzes ausgelesen.
^^hoffe das ich das so richtig erkl?rt habe... mit der suchfunktion bin ich auf keine brauchbaren ergenisse gesto?en.
danke im vorhinein
Vielleicht so:
$id = 5; $sql = "SELECT * FROM tabelle WHERE id = '$id'"; $result = mysql_query($sql); while ($row = mysql_fetch_object($result)) { $wort = $row->wort; } $sql2 = "SELECT * FROM tabelle WHERE wort = '$wort'"; $result2 = mysql_query($sql2); while ($row2 = mysql_fetch_object($result2)) { //tu irgendwas mit der Zeile }
-
Ich glaube er meint das so, das der Spalet den Namen des Wortes hat.. in dem Falle w?rde ich es so l?sen:
$id = 5; $sql = "SELECT `wort` FROM `tabelle` WHERE `id` = '$id'"; $result = mysql_query($sql); $wort = mysql_fetch_array $sql2 = "SELECT * FROM `$wort[0]`"; $result2 = mysql_query($sql2); while ($row2 = mysql_fetch_object($result2)) { //tu irgendwas mit der Zeile }
Ist ?brigens besser Spalten und Tabellen namen in `` zu schrieben und Werte in ''. Beugt Fehlern und Injections vor. ;) -
Ich glaube er meint das so, das der Spalet den Namen des Wortes hat.. in dem Falle w?rde ich es so l?sen:
$id = 5; $sql = "SELECT `wort` FROM `tabelle` WHERE `id` = '$id'"; $result = mysql_query($sql); $wort = mysql_fetch_array $sql2 = "SELECT * FROM `$wort[0]`"; $result2 = mysql_query($sql2); while ($row2 = mysql_fetch_object($result2)) { //tu irgendwas mit der Zeile }
Ist ?brigens besser Spalten und Tabellen namen in `` zu schrieben und Werte in ''. Beugt Fehlern und Injections vor. ;)
fast richtig, aber ein kleiner Fehler ist dir unterlaufen Adrians :P
$id = 5; $sql = "SELECT `id`,`wort` FROM `tabelle` WHERE `id` = '$id'"; //in dieser Zeile war der Fehler versteckt $result = mysql_query($sql); $wort = mysql_fetch_array $sql2 = "SELECT * FROM `$wort[0]`"; $result2 = mysql_query($sql2); while ($row2 = mysql_fetch_object($result2)) { //tu irgendwas mit der Zeile }
Der Fehler war in der ersten Abfrage. Du suchst nach einem Wert ?ber die id, w?hlst die id aber nicht aus der tabelle aus. somit wei? php nicht, was die spalte id ist und gibt einen Fehler zur?ck... so ungef?hr xD -
Quatsch keine Opern. o.?
Wenn man WHERE `id` = 'Werr' schreibt, wird geguckt, ob tabelle ID den Wert hat. Wenn Tabelle id nciht existiert gibts einen Fehler aus. ;) -
...ich weis jetzt auch nicht kenn mich zwar in php etwas aus aber die betonung liegt auf etwas...
nochmal:
ich m?chte einen bestimmten datensatz ausgeben
der bestimmte datensatz muss in einem bestimmten spalte(wname) einen bestimmten text stehen haben.
und von diesem datensatz soll dann die spalte "pruef" ausgegeben werden...
^^so besser erkl?rt... hoff ich zumindest
nochmals danke... -
SELECT `pruef` FROM `tabelle` WHERE `spalte` = 'gesuchterwert'
Das ist der Query. Die Verarbeitung siehst du ja oben.
?dit:
@Compactdisc: Naja, es gibt Leute die ?ergeben auch immermal einen spaltennamen per variable. Da w?re es dann sinnvoll. ;) Man muss ja immer vom schlimmsten Fall ausgehen, nich wahr?:P
Argh..hochkommata sind ja ' X')
Dochdoch, da shilft. verwendet man die nicht kann man bei einer passwort eingabe beispielsweise den suernamen eingeben und als Passwort:
'' OR '1' = '1' und schon ist man drinne. ;)
Beitrag ge?ndert am 2.08.2006 21:19 von adrians -
ich m?chte einen bestimmten datensatz ausgeben
der bestimmte datensatz muss in einem bestimmten spalte(wname) einen bestimmten text stehen haben.
und von diesem datensatz soll dann die spalte "pruef" ausgegeben werden...
Das mysqlanische ?quivalent dazu m?sste ungef?hr so aussehen:
SELECT `pruef` FROM `tabelle` WHERE `spalte` = 'Bestimmter Text'
Btw: Das Verwenden von Hochkommata (`) sch?tzt keines Wegs vor MySQL-Injections! Wer schiesst sich schon selbst ins Bein?
Ein wirksamer Schutz gegen Injections stellt die Verwendung von mysql_real_escape_string() dar -> http://de.php.net/manual/en/function.mysql-real-escape-string.php
//edit: Zu sp?t ...
Beitrag ge?ndert am 2.08.2006 21:17 von compactdisc -
^^check das ganze nicht so richtig...
hab aber eine eigene l?sung gefunden... trotzdem danke an alle die mir zu helfen versuchten -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage