mysql_fetch_row bekommt boolean

...komplette Frage anzeigen

3 Antworten

hänge an das mysql_query(...) or die(mysql_err()) dran. dann wird dir schon genauer gesagt was nicht passt.

Derderlernt 06.05.2015, 15:59

Danke für die Antwort,

jetzt bekomme ich folgende Antwort:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '¤tze, COUNT(Platzverwaltung.Skey) FROM Lizenzen LEFT JOIN Platzverwaltung ' at line 1

0
maximilianus7 06.05.2015, 19:11
@Derderlernt

wenn du umlaute verwenden möchtest: du kannst die namen von spalten und tabellen in backticks ` einklammern

1

Es wurde nichts gefetcht. Prüfe das mit 

if (!$Platzzählerabfrage)

Ersetze $Skey probehalber durch einen fixen Wert im Select.

Derderlernt 06.05.2015, 15:40

Danke erstmal für die Antwort, 

Ich habe das query bereits mit einem fixen Wert probiert, komme aber zum gleichen Ergebnis.

Was meinst du mit nichts gefetcht? eigentlich gibt das query aus das 3 Plätze vorhanden sind und davon 1 Platz belegt ist?

0
Suboptimierer 06.05.2015, 15:42
@Derderlernt

Tschuldigung, ich meinte, dass der SQL fehlerhaft ist.

Zum Beispiel solltest du nach 

Lizenzen.AnzahlPlätze

gruppieren, nicht nach 

Platzverwaltung.Skey
0
Suboptimierer 06.05.2015, 16:14
@Derderlernt

Keine Ahnung, ob noch mehr Fehler drin sind, aber wenn du nach einer Spalte A selektierst, musst du sie auch im GROUP BY angeben (wenn sie nicht aggregiert wurde).

Entweder musst du den GROUP BY mit dem Selectfeld synchronisieren oder du musst nach dem GROUP BY Feld selektieren.

Beispiel:

"SELECT Lizenzen.AnzahlPlätze, COUNT(Platzverwaltung.Skey)
    FROM Lizenzen
    LEFT JOIN Platzverwaltung
    ON Lizenzen.Skey = Platzverwaltung.Skey
    WHERE Lizenzen.Skey='$Skey'
    GROUP BY Lizenzen.AnzahlPlätze
"

0
maximilianus7 06.05.2015, 15:53

@suboptimierer: häufige falsche antwort auf ein häufig auftauchendes problem: auch wenn select keinen datensatz findet wird ein gültiges ressource handle zurückgeliefert!!!! die anschliessende while-schleife wird dann 0 mal durchlaufen. auch die leere menge ist eine menge!

mysql_query liefert boolean FALSE wenn die anfrage FALSCH ist: syntaktisch oder formal (z.b. angegebene spalte oder tabelle nicht vorhanden).

2
Suboptimierer 06.05.2015, 16:22
@maximilianus7

Hatte mich doch schon 10 Minuten vor deinem Kommentar selbst korrigiert ;) Aber danke, dass du es nochmal ganz deutlich gemacht hast.

0

Poste mal den weiteren Teil deines Codes

also das mysql_fetch_row()

Derderlernt 06.05.2015, 15:41
mysql_fetch_row($Platzzählerabfrage)){ $GenutztePlätze = $Platzzählerdatensatz[1]; $VerfügbarePlätze = $Platzzählerdatensatz[0]; }
0

Was möchtest Du wissen?