WHERE Klausel aus Formular
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
beitrag
bestimmten namen
boxen
daten
denke mal
ergebnis
fehler
fehlermeldung
fehlfunktion
formular
komma
la mal
normalerweise
result
statement
stellen
syntax
telefonnummer
weiteren rate
-
hallo
habe folgendes erstellt:
$Name=$HTTP_POST_VARS['Name']; $abfrage = "SELECT Id, Name, Telefonnummer, FROM daten where Name LIKE '$Name'"; $ergebnis = mysql_query($abfrage); $row = mysql_fetch_object($ergebnis)
der user gibt in ein Formular den Namen ein von den daten die editiert werden sollen.
jetzt soll aus der datenbank die daten gelesen werden von dem Namen den der user vorher eingetragen hat.
Alles sch?n und gut. jetzt ist nur das problem so wie das script oben ist mit where Name LIKE '$Name' in den input boxen nichts eingetragen wird. ersetze ich den $Name z.B. durch M?ller zeigt er mir aber alle Daten von M?ller an.
Ich hoffe es kann mir jemand schnell helfen. ich denke mal das es an der syntax in der abfrage liegt -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Lass mal die einfachen Anf?hrungszeichen in dem SQL statement weg! Alsoi:
... where Name LIKE $Name ... -
Das w?rde ich nicht empfehlen.
Der User soll ja einen ganz bestimmten Namen ersetzen und nicht nur einen, der so ?hnlich ist wie der eingegebene, oder?
Ersetze die Stelle lieber so:
WHERE Name='".$Name."'"; -
das mit den anf?hrungszeichen hatte ich schon probiert bevor ich hier gepostet hatte
die andere l?sung hab ich jetzt drin aber geht trotzdem nicht
liegt es vielleicht an der ausgabe?
<input type="text" size="20" name="Name" value="<? echo $row->Name; ?>">
kann ich so dann das ergebnis reinschreiben in die input box? -
Huhu!
Eine m?gliche Ursache f?r die Fehlfunktion k?nnte das ?berfl?ssige Komma nach "Telefonnummer" sein.
Des Weiteren rate ich dir, zu ?berpr?fen, ob die Abfrage erfolgreich gewesen ist:
// Code $ergebnis = mysql_query($abfrage); if($ergebnis != false) { print('Fehler in der Abfrage. Mysql meldet: '. mysql_error()); } else { print('Erfolgreiche Abfrage etc.'); }
-
also er gibt dann folgendes zur?ck: Fehler in der Abfrage. Mysql meldet:
soll da nicht normalerweise noch ne sch?ne fehlermeldung von mysql danach kommen?
das , hatte ich weggemacht geht aber trotzdem nicht
Beitrag ge?ndert am 16.03.2006 19:48 von bazic -
Es muss auch == und nicht != hei?en!
Au?erdem war in der Abfrage nach Telefonnummer ein unn?tiges Komma.
Du solltest ber?cksichtigen, dass der User auch vorhaben k?nnte, deine Datenbank zu manipulieren (Keine Probleme mehr durch mxsql_escape_string) oder dass es mehrere Ergebnisse geben k?nnte.
Der folgende Code wird dir weiterhelfen.
$name = mysql_escape_string($_REQUEST[name]); $abfrage = 'SELECT Id, Name, Telefonnummer FROM daten WHERE Name LIKE "'.$name.'" OR Name ="'.$name.'" OR Name LIKE "%'.$name.'" OR Name LIKE "'.$name.'%" OR Name LIKE "%'.$name.'%"'; $query = mysql_query($abfrage); if($query == false) { print('Fehler in der Abfrage. Mysql meldet: '. mysql_error()); } else { print('Erfolgreiche Abfrage etc.'); while ($result=mysql_fetch_row($query)) { # Id Name Telefonnummer echo $result[0].$result[1].$result[2]; } }
Beitrag ge?ndert am 16.03.2006 20:17 von tuvalu -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage