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
 

Neue Beiträge

Zurück