Ich habe dieses Stück von PHP - MySQL-Code:
MySQL-Abfrage funktioniert nicht innerhalb von PHP-Datei
Wenn ein Benutzer in der Datenbank als Frau markierte die Seite öffnet es die Datenbank für einige Daten mit der Nummer abfragt 1012,1013,1014 sonst nur 1012,1013.
// $php_variable=2
$SQL_M = "SELECT @gender:=$php_variable, B.id, B.notes, B.time_logged
FROM database.evs B
INNER JOIN (select @gender:=0) as Something
WHERE
CASE WHEN @gender=2
THEN (B.items IN ('1012', '1013', '1014'))
ELSE (B.items IN ('1012', '1013'))
END
ORDER BY B.time_logged ASC";
$result = mysql_query($SQL_M);
$mycount = mysql_num_rows($result);
if ($mycount > 0) {
while ($mrow = mysql_fetch_array($result))
{
extract($mrow);
echo ">>>>".$id."<br/>"
//Works locally - not on server.
}
}
$ php_variable ist 2.
Es sollte Ausgabeelemente mit Artikel-ID in: 1012,1013,1014
es Stattdessen gibt Ergebnisse für Elemente in 1012,1013.
Die seltsame Sache ist, dass ich diese Abfrage lokal (von PHP und MySQL Abfrage allein) und auf dem Server (Plesk - Mysql) getestet und es läuft gut.
Es läuft nicht in der PHP-Datei auf dem Server - auch die ORDER funktioniert nicht richtig.
Die Abfrage, die ausgeführt werden soll ist:
$SQL_M = "SELECT B.id, B.notes, B.time_logged
FROM database.evs B
WHERE B.items IN ('1012', '1013', '1014')
ORDER BY B.time_logged ASC";
Php Version: 5.16 (Local und Server)
MySQL Version: 5.0.77 (lokale und Server)
Vielen Dank im Voraus für Ihre Hilfe.
Warum erstellen Sie nicht einfach die Abfrage in PHP je nach Bedingung? Dies erscheint unnötig kompliziert. – jeroen
Ich stimme Ihnen zu, basierend auf dem Beispiel, das ich gab. In Wirklichkeit ist es viel komplizierter, aber dieses einfache Beispiel funktioniert auch nicht. Ich versuche, den Grund zu finden ... –
versuchen Echo $ SQL_M und führen Sie es von mysql Kommandozeile/phpmyadmin Was ist $ SQL_M echten Inhalt? –