SQL Statement (select)
aitee
- php
0 lulu0 aitee0 aitee0 aitee0 Andreas Görtz0 Ilja0 aitee
0 Patrick Schröder
Hi ihrs,
ich sitze jetzt an über ner Stunde an meinem Select ... und ich finde den Fehler einfach nicht ...
SQL-Befehl :
Select name, right FROM tbl_nav WHERE right = 1;
MySQL meldet:
You have an error in your SQL syntax near 'FROM tbl\_nav
WHERE right = 1 LIMIT 0, 30' at line 1
Weiß jemand was ich falsch mache? Ich bin der Meinung das Statement ist 100% equivalent zu einem anderen, welches jedoch funktioniert ... ich weiß nicht mehr weiter ... entweder ich bin so grotten müde, dass ich ein Komma nicht sehe oder so etwas oder ich weiß auch nicht mehr :(
Huhu aitee
Weiß jemand was ich falsch mache?
Ja
http://www.mysql.com/doc/en/Reserved_words.html
right is wrong ;-)
Viele Grüße
lulu
right is wrong ;-)
oh lol ... scheiße ... du glaubst nicht wie lange ich schon daran rumbastel ... grml ... *lach ... *heul ...
dankeschön :P
ok ich gebs auf ... geht immer noch nicht ...
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/www/htdocs/dev-lounge.de/prj/dev-lounge/content.php on line 26
--------------------------------------------------------------------------------
mysql_error():
--------------------------------------------------------------------------------
sqlString: SELECT nav_name FROM tbl\_nav
WHERE usr_right = '1'
Huhu
ok ich gebs auf ... geht immer noch nicht ...
[...] is not a valid MySQL-Link resource in [...]
etwas mit Deinem DB-Connect stimmt nicht.
Also nochmal DB-Name Passwort etc. prüfen
Viele Grüße
lulu
Huhu
ok ich gebs auf ... geht immer noch nicht ...
[...] is not a valid MySQL-Link resource in [...]
etwas mit Deinem DB-Connect stimmt nicht.
Also nochmal DB-Name Passwort etc. prüfenViele Grüße
lulu
Doch das stimmt alles ... das DB Connect benutze ich so auch ein Statement davor fürs Login und der klappt ja noch ... :/
right is wrong ;-)
ok das hab ich korrigiert, funtz auch net ...
ich dachte noch dass es vielleicht an den > ' < liegen könnte?
müssen die so sein: ` ... oder so : ´ oder so: ' ??
Und das Feld was ich abfrage in der Where Bedingung ist ein Tinyint ... ich frage ab mit:
$sql = SELECT nav_name from tbl_nav where nav_right = '".$usr_right."'";
fällt euch noch irgendwas auf??
Hi,
ich dachte noch dass es vielleicht an den > ' < liegen könnte?
müssen die so sein: ` ... oder so : ´ oder so: ' ??
' sind schon richtig. Diese Backticks (`), die phpMyAdmin gerne mal um Spaltennamen schreibt, brauchst du nicht wirklich.
$sql = SELECT nav_name from tbl_nav where nav_right = '".$usr_right."'";
fällt euch noch irgendwas auf??
Die Fehlermeldung deutet darauf hin, dass die DB mit deiner Abfrage nicht zurechtkommt. Die einfachste Lösung ist natürlich, dass du die Abfrage auch in einen String packen solltest:
$sql = SELECT [...]
^
Hier muss wohl ein " hin
Wenn das nur ein Flüchtigkeitsfehler beim posten war, können z.B. auch falsche Tabellen-, Spaltennamen, oder eine nicht aufgebaute Verbindung Schuld an dem Fehler sein. In sochen Fällen solltest du dir deine Abfrage vor dem Absetzen via mysql_query() nochmal ausgeben lassen und prüfen:
echo $sql; exit;
Gruß,
Andreas.
yo,
Die Fehlermeldung deutet darauf hin, dass die DB mit deiner Abfrage nicht zurechtkommt. Die einfachste Lösung ist natürlich, dass du die Abfrage auch in einen String packen solltest:
Wenn das nur ein Flüchtigkeitsfehler beim posten war, können z.B. auch falsche Tabellen-, Spaltennamen, oder eine nicht aufgebaute Verbindung Schuld an dem Fehler sein. In sochen Fällen solltest du dir deine Abfrage vor dem Absetzen via mysql_query() nochmal ausgeben lassen und prüfen:
dir ist aber schon bewußt, dass das problem bereits gefunden wurde und das select statement ein schlüsselwort als spaltenname benutzt ?
Ilja
Hi Ilja
dir ist aber schon bewußt, dass das problem bereits gefunden wurde und das select statement ein schlüsselwort als spaltenname benutzt ?
Dir ist bewusst, dass aitee gesagt hat, es funktioniert immer noch nicht?
Gruss Daniela
Hi,
dir ist aber schon bewußt, dass das problem bereits gefunden wurde und das select statement ein schlüsselwort als spaltenname benutzt ?
ja, denn _ich_ habe den gesamten Thread gelesen, daher weiß ich auch, dass es _ein weiteres_ Problem gab. Lies das Posting, auf das ich geantwortet habe, nochmal durch und entschuldige dich würdevoll für diesen grundlosen Vorwurf ;-)
Das Schlüsselwort "right" hat aitee entfernt und fragt nun nach "nav_right" ab.
Gruß,
Andreas.
yo,
ja, denn _ich_ habe den gesamten Thread gelesen, daher weiß ich auch, dass es _ein weiteres_ Problem gab. Lies das Posting, auf das ich geantwortet habe, nochmal durch und entschuldige dich würdevoll für diesen grundlosen Vorwurf ;-)
wie muss den eine würdevolle entschuldigung aussehen, um dich milde zu stimmen ? ;-)
Ilja
... ein aufmerksamer Bursche, dass mus man ihm lassen ;)
Danke ...
der Fehler lag im folgenden:
Ich hatte bisher meine ganzen SQL Codes im Hauptteil ...
nun aber ausgelagert in eigene Funktionen ...
mein $connect war aber nicht global und innerhalb der funktionen wurde die Variable auch nicth erneut mit global deklariert ...
somit lag der eigentliche Fehler gar nicht am $sql statement sondern an der fehlenden DB Auflösung :/
thx for help @ all :)
Hallöchen
Select name, right FROM tbl_nav WHERE right = 1;
Kann nicht funktionieren...
Richtig wäre: "SELECT name, right FROM tbl_nav WHERE right = '1'";
Gruß Patrick
Hi Patrick
Richtig wäre: "SELECT name, right FROM tbl_nav WHERE right = '1'";
Nur falls right ein String ist. Wenn nicht, ist es richtig ohne Hochkommata.
Gruss Daniela
Hi Patrick
Richtig wäre: "SELECT name, right FROM tbl_nav WHERE right = '1'";
Nur falls right ein String ist. Wenn nicht, ist es richtig ohne Hochkommata.
Gruss Daniela
Stimmt :)
eigentlich müsste es so aussehen (im Code)
"SELECT nav_name, usr_right FROM tbl_nav WHERE right = ".$usr_right;
Huhu aitee
eigentlich müsste es so aussehen (im Code)
"SELECT nav_name, usr_right FROM tbl_nav WHERE right = ".$usr_right;
nö, da ist ja schon wieder etwas "wrong".
Kleiner Tipp, benutze here-doc Syntax für Deine Queries.
Also z.B.:
$query = <<< EOT
SELECT
nav_name,
usr_right
FROM
tbl_nav
WHERE
usr_right = $usr_right
EOT;
Das reduziert die Gefahr von solchen Flüchtigkeitsfehlern deutlich
Viele Grüße
lulu
wieso falsch? das ist richtig!
Huhu aitee
wieso falsch? das ist richtig!
ich dachte, ich hätte da ein "right" in der where-Klausel gesehen.
Und das ist ja eigentlich ein Schlüsselwort.
Viele Grüße
lulu
Hallöchen
Select name, right FROM tbl_nav WHERE right = 1;
Kann nicht funktionieren...
Richtig wäre: "SELECT name, right FROM tbl_nav WHERE right = '1'";
Gruß Patrick
Nein, denn mit den ticks wäre es ein String ... aber es handelt sich um ein TinyInt