Oh man und ich soll raten was in $plattform drin steht? Was hast du bisher versucht, also Code zeigen... was für Fehlermeldungen kriegst du bei deinen Versuchen? Falls du ein Ergebnis kriegst wie sieht es aus und wie sollte es aussehen?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Verzwickte IF abfrage
Einklappen
Neue Werbung 2019
Einklappen
X
-
und das ist der code den ich eigentlich für korrekt halteYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE Plattform = 'xbox360' AND user_games_db.PlayerID = OR useSpielGenrePlattformMatchBesitz
achja in $plattform = "xbox360";PHP-Code:$sql = "SELECT spieledb.Spielname, spieledb.Genre, spieledb.Plattform, user_games_db.PlayerID FROM spieledb LEFT JOIN user_games_db ON spieledb.id = user_games_db.GameID AND user_games_db.PlayerID = $userid WHERE Plattform = $plattform AND user_games_db.PlayerID = $userid OR user_games_db.PlayerID IS NULL ORDER BY spieledb.Spielname ASC";
Kommentar
-
-
echo $sql; und das ergebnis da durch jagen : http://www.php.de/mysql/973-tool-sql-formatter.html
und hör gefälligst auf zu pushen, wenn dir jemand antworten will dann wird er das schon tun
Kommentar
-
Hab mal bischen gelesen und rumprobiert jetzt ist der fehler etwas anders
Habe jetzt
Dann kommt diese meldungPHP-Code:$sql = "SELECT spieledb.Spielname, spieledb.Genre, spieledb.Plattform, user_games_db.PlayerID FROM spieledb LEFT JOIN user_games_db ON spieledb.id = user_games_db.GameID AND user_games_db.PlayerID = $userid WHERE spieledb.plattform = $plattform AND user_games_db.PlayerID = $userid OR user_games_db.PlayerID IS NULL ORDER BY spieledb.Spielname ASC";
Etwas weiter oben wird die varibale $plattform der wert xbox360 geschrieben nach dem die daten gefilter werden sollen. Hoffe das sind genug infos damit ihr mit helfen könntUnknown column 'xbox360' in 'where clause'
Kommentar
-
achja in $plattform = "xbox360";Sollte eigentlich schon reichen.WHERE spieledb.plattform = $plattform
Was soll das schon heißen. "Unbekannte Spalte 'xbox360'". Warum Spalte?Unknown column 'xbox360' in 'where clause'
Das siehst Du, wenn Du Dir die vollständige Query ausgeben läßt.
PHP-Code:var_dump ($sql);
Kommentar
-
-
habe per var dump das hier raus bekommen
wenn ich $plattform in ' ' setzte bekomme ich die ausgabe oben aber ohne kommt nur die gleiche meldung wie vorher auchstring(329) "SELECT spieledb.Spielname, spieledb.Genre, spieledb.Plattform, user_games_db.PlayerID FROM spieledb LEFT JOIN user_games_db ON spieledb.id = user_games_db.GameID AND user_games_db.PlayerID = 94 WHERE spieledb.plattform = 'xbox360' AND user_games_db.PlayerID = 94 OR user_games_db.PlayerID IS NULL ORDER BY spieledb.Spielname ASC"
Ich tippe mal darauf das er den wert spieledb.plattform mit nichts vergleichen kann weil per JOIN im Select eine tabelle ohne die passende spalte erstellt wurde. Aber dafür ist mein verständnis noch zu wenig.
Kommentar
-
nein...
strings wie deiner nun mal ist "xbox360" gehören in anführungszeichen oder einfache hochkommata.
Strings ohne ' oder " werden (genauso wie strings in `) als Felder interpretiert
Kommentar
-
Du kannst bei SQL auch die Werte von zwei Feldern eines Datensatzes vergleichen lassen. SELECT ... WHERE a.x=a.y
Woher soll der SQL Server jetzt wissen, was ein Feldname ist und was eine Zeichenkette zum Vergleichen ist? Oder konkret gefragt: Woher soll mySQL wissen, dass Du mit xbox360 nicht ein Feld mit diesem Namen meinst? Ganz einfach, Du markierst die Zeichenkette mit '
Du kannst auch Feldbezeichner mit ` markieren. Letzteres ist (meistens) optional, ersteres ist notwendig.Code:SELECT `spieledb`.`Spielname`, `spieledb`.`Genre`, `spieledb`.`Plattform`, `user_games_db`.`PlayerID` FROM `spieledb` LEFT JOIN `user_games_db` ON `spieledb`.`id` = `user_games_db`.`GameID` AND `user_games_db.PlayerID` = 94 WHERE `spieledb`.`plattform` = 'xbox360' AND ( `user_games_db`.`PlayerID` = 94 OR `user_games_db`.`PlayerID` IS NULL ) ORDER BY `spieledb`.`Spielname` ASC
Kommentar
-
Egal ob ich xbox360 mit ' ' oder " " schreibe oder den v´code von david versuche klappt es nicht bei den '' und "" kommt kein fehler aber es ändert sich auch nichts und bei dem code von david kommt dieser fehler
Unknown column 'user_games_db.PlayerID' in 'on clause'
Kommentar
-
Besser diese Backticks gleich ganz weglassen, dann kommst du auch nicht in Versuchung, reservierte Wörter als Bezeichner zu verwenden. Und der Code ist erst noch eher portabel.Zitat von David Beitrag anzeigenDie müssen da genauso gesetzt werden, wie bei den anderen Tabellen-/Feldbezeichnern.
Kommentar
-
und in $userid steht? lass mich raten: nixZitat von schimanski Beitrag anzeigenachja in $plattform = "xbox360";
Kommentar
-
Zitat von lazydog Beitrag anzeigenBesser diese Backticks gleich ganz weglassen, dann kommst du auch nicht in Versuchung, reservierte Wörter als Bezeichner zu verwenden. Und der Code ist erst noch eher portabel.
Richtig und wenn man dann noch Kürzel vor die Spaltennamen macht kann einem auch nichts passieren
Kommentar

Kommentar