PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PHP] Simples Datenbank Problem


WhiteVelvet
2006-10-24, 10:45:18
Also ich komme nicht drauf, was hier schief läuft: Eine ganz simple Abfrage


$erg=mysql_query("SELECT * FROM rechner WHERE group='$_GET[group]' ORDER BY $_GET[sort] $_GET[order]");


endet mit der Fehlermeldung

MySQL-Error @read_rechner: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'group='Standard' ORDER BY name' at line 1

Ersetze ich group durch name oder eine andere existierende Spalte in der Tabelle, dann kommt keine Fehlermeldung. Es passiert nur bei group. Dann dachte ich, dass er group nicht findet und habe mal etwas nicht-existentes genommen, aber dann kommt die typische Meldung column xy not found. Ergo findet er group, aber gibt die Meldung aus. Ich komme nicht drauf, wieso, für mich sieht alles richtig aus. group ist als varchar(64) definiert.

EDIT: Es sei denn group ist ein reserviertes Wort... *nachschlag*

EDIT2: Ok, es IST ein reserviertes Wort... umbenannt und zack geht es wieder. Wiedermal ein schönes Beispiel, dass dieses Forum alleine schon durch seine Anwesenheit hilft ;)

Gast
2006-10-24, 13:56:59
Ehm $_GET['order'] funktioniert meines wissens in einem String gar nicht.

Drexel
2006-10-24, 19:19:15
Evtl. weil group ein reserviertes Wort ist?

darph
2006-10-24, 19:29:30
Also ich komme nicht drauf, was hier schief läuft: Eine ganz simple Abfrage


$erg=mysql_query("SELECT * FROM rechner WHERE group='$_GET[group]' ORDER BY $_GET[sort] $_GET[order]");
Ehrm.... ;(

$query = sprintf("SELECT * FROM rechner WHERE group='%s' ORDER BY %s %s",
mysql_real_escape_string($_GET["group"]),
mysql_real_escape_string($_GET["sort"]),
mysql_real_escape_string($_GET["order"]));Versuch's eher mal so. Und wenn das thut, dann solltest du dir überlegen, teile der Syntax, wie "ASC" oder "DESC" nicht aus einem Formular auszulesen, sondern dafür eine Funktion anzulegen, à la

function getDingsbums($formValue) {
switch ($formValue) {
case 1:
return "ASC";
break;
case 2:
return "DESC";
break;
default:
throw new Exception("given parameter is not valid");
// oder so
break;
}
}


$order = getDisngsbums($_GET["blafasel"]);