Supportnet / Forum / Datenbanken
Abfrageformular funktioniert nicht bei globals off
Frage
Hallo,
ich versuch gerad ein Abfrageformular mit den Feldern titel und autor zu erstellen, daß auch funktioniert, wenn die "Globals off" sind.
Weiß jemand, ob man und wie man den Befehl
[code]sql = "SELECT titel, autor FROM buecher WHERE titel LIKE ´%$titel%´ [/code]
mit $_Post[´titel´] schreibt?
Ist egal, wie ich % und ´ anordne, ich erhalte parse error...
Vielen vielen Dank
LG
Mel
Antwort 1 von Teddy7
sql = "SELECT titel, autor FROM buecher WHERE titel LIKE ´*titel*´"
oder mit Variable
dim xtitel as string
xtitel = "titel"
sql = "SELECT titel, autor FROM buecher WHERE titel LIKE " & "´*" & xtitel & "*´"
Gruß
Teddy
oder mit Variable
dim xtitel as string
xtitel = "titel"
sql = "SELECT titel, autor FROM buecher WHERE titel LIKE " & "´*" & xtitel & "*´"
Gruß
Teddy
Antwort 2 von Mel
Teddy7:
Danke Dir, aber wenn ich Sternchen verwende, gibt die Datenbank mir gar keine Daten aus.
Ich hab auch schon folgendes ausprobiert:
aber das endet auch in einem parse error.
Weiß jemand, mit welchen Anführungszeichen o.ä. man aus dem folgenden $titel ein $_post[titel] macht ,damit die Variable auch bei globals off gelesen werden kann?
sql = "SELECT titel, autor FROM buecher WHERE titel LIKE ´%$titel%´
Vielen Dank für jede Art von Tipps
Gruss Mel
Zitat:
sql = "SELECT titel, autor FROM buecher WHERE titel LIKE ´*titel*´"
sql = "SELECT titel, autor FROM buecher WHERE titel LIKE ´*titel*´"
Danke Dir, aber wenn ich Sternchen verwende, gibt die Datenbank mir gar keine Daten aus.
Ich hab auch schon folgendes ausprobiert:
{$_POST[´titel´]}aber das endet auch in einem parse error.
Weiß jemand, mit welchen Anführungszeichen o.ä. man aus dem folgenden $titel ein $_post[titel] macht ,damit die Variable auch bei globals off gelesen werden kann?
sql = "SELECT titel, autor FROM buecher WHERE titel LIKE ´%$titel%´
Vielen Dank für jede Art von Tipps
Gruss Mel
Antwort 3 von Supermax
man sollte ohnehin Werte aus Formularen nicht ungefiltert in eine SQL-Abfrage eintragen (siehe Stichwort "SQL-Injection"). Besser ist es, den per POST übergebenen Wert mittels mysql_escape_string() "query-sicher" zu machen.
$titel = mysql_escape_string($_POST[´titel´]);
$sql = "SELECT titel, autor FROM buecher WHERE titel LIKE ´%$titel%´";
$sql_result = mysql_query($sql);
Antwort 4 von Mel
aha,
super, hab ich auch sogar gleich auf Anhieb verstanden und es funktioniert auch einwandfrei.
Vielen vielen vielen Dank für den Hinweis und den Code,
freut mich total
super, hab ich auch sogar gleich auf Anhieb verstanden und es funktioniert auch einwandfrei.
Vielen vielen vielen Dank für den Hinweis und den Code,
freut mich total

