Datenbank mit Variablen abfragen

Haben die Variablen $plz und $kueche überhaupt einen gültigen Wert? Ich glaube es fast nicht!

Auerdem solltest du dir wie in dem Beispiel von FOrris die Funktion mysql_real_escape_string anschauen und sie auch verwenden!
 
Hallo Thomas,
schau mal oben in Beitrag #5
so hat es funktioniert aber nur mit einer Variablen Abfrage, ich möchte aber mehrere Variablen Abfragen einbauen und darauf hin hat mir der saftmeister den Code von Seite #8 geschickt.
Aber damit komme ich nicht klar, vermutlich habe ich was falsch gemacht, deshalb habe ich den gesamten Code geschickt (von meiner Testseite)

Ja den Code mysql_real_escape_string muß ich mir noch zu Gemühte führen da habt Ihr natürlich Recht aber Step by Step :)

Danke Dir
Gruß
Rainer
 
Hi, also als erstes mal ein Hinweis, wie du den Fehler selbst finden kannst: Lass dir

- mit echo das $sql ausgeben und kontrollier, ob es deinen Test-Kriterien entspricht
- mit var_dump kannst du $row ausgeben und schauen, ob da was zurück kommt.

Danach möchte ich tombe beipflichten: Ändere mal

PHP:
$sql = sprintf( "SELECT * FROM ResBar WHERE kueche = '%s' OR plz = '%s'",  // eventuell '%u' für die Postleitzahl einsetzen?
$kueche, $plz );

zu

PHP:
$sql = sprintf( "SELECT * FROM ResBar WHERE kueche = '%s' OR plz = '%s'",  // eventuell '%u' für die Postleitzahl einsetzen?
$_POST['kueche'], $_POST['plz'] );

Was sind kueche bzw. plz in der Datenbank denn für Spalten-Typen?
 
Hallo,
kueche = VARCHAR
plz = Int(10)

Wenn ich kueche auf meiner Testseite "Eingabe 1"
und plz "Eingabe 91166" eingebe bekomme ich folgende Echo Anzeige

SELECT * FROM ResBar WHERE kueche = '1' OR plz = '91166'Array

Die Änderung habe ich gemacht, bekomme aber immer noch keine Ausgabe von der Datenbank
 
Hmm, da ist aber offensichtlich was da, sonst hätte es keine Array-Ausgabe bei var_dump. Mach mal alle anderen Ausgaben (vor allem das komische HTML innerhalb der while) raus. Lass nur das var_dump drinnen.
 
Sorry ich kann dir leider nicht folgen :-(
was soll ich löschen?

Code:
$sql = sprintf( "SELECT * FROM ResBar WHERE kueche = '%s' OR plz = '%s'",  // eventuell '%u' für die Postleitzahl einsetzen?
$_POST['kueche'], $_POST['plz'] ); 

$query = mysql_query( $sql ) or die( mysql_error () );
 
while($row = mysql_fetch_array($query) ){

echo $sql;
echo $row;
//Zeile von einem Datensatz, der 2 Datensatz wird darunter geschrieben
echo '<table><tr><td><tr><td>';
echo $row->id;
echo '</td><td></td><td>';
echo $row->land;
echo '</td><td></td><td>';
echo $row->familienname;
echo '</td><td></td><td>';
echo $row->vorname;
echo '</td><td></td><td>';
echo $row->restaurantname;
echo '</td><td></td><td>';
echo $row->kueche;
echo '</td><td></td><td>';
echo $row->garten;
echo '</td><td></td><td>';
echo $row->plz;
echo '</td></tr></td><td></table>';

}

?>
 
Ok, ich hab den Fehler entdeckt. Er liegt darin, das mysql_fetch_array() ein Array zurück gibt. Du jedoch die $row wie ein Objekt verwendest. Mach mal aus

PHP:
while($row = mysql_fetch_array($query) ){

zu

PHP:
while($row = mysql_fetch_object($query) ){
 
Hallo,
Danke es funktioniert super,
wenn ich mich mit der PDO Funktion auseinandergesetzt habe und noch Fragezeichen im Gesicht sind, darf ich mich vertrauensvoll an dich wenden?

mfg
Rainer
 
Zurück