Zum Inhalt springen

PHP problem bei SQL-Abfrage

Erstellt am 27. April 2006 · 3 Antworten · letzte Antwort am 27. April 2006

Tags: Frage

laufkraft ·

Hi...

ich binde ein php-script als "PHP-script" in meinen Seiteninhalt ein und habe folgendes Problem:

$datum1=="2006-01-01";
$datum2=="2006-12-31";

           $sql = "SELECT user_tabelle.name, user_tabelle.id, sum(trdaten.dist) auswahl
            FROM user_tabelle
            INNER JOIN trdaten ON user_tabelle.id = trdaten.userid WHERE trdaten.rubrik IN (1, 2)
			AND	trdaten.datum >= '$datum1'
			AND	trdaten.datum <= '$datum2'
            GROUP BY user_tabelle.name
            ORDER by auswahl DESC
            LIMIT 15";
      $result = mysql_query($sql) OR die(mysql_error());

...
...

Ich möchte irgendwie in der SQL-Abfrage das Datum als Variable einbinden (also '$datum1' z.B.) aber es klappt nicht, ich probiere mit den Anführungszeichen rum, mal mit mal ohne mal " mal ' ... ich schnalls nicht.

Wenn ich schreibe

$datum1=="2006-01-01";
$datum2=="2006-12-31";

           $sql = "SELECT user_tabelle.name, user_tabelle.id, sum(trdaten.dist) auswahl
            FROM user_tabelle
            INNER JOIN trdaten ON user_tabelle.id = trdaten.userid WHERE trdaten.rubrik IN (1, 2)
			AND	trdaten.datum >= 2006-01-01
			AND	trdaten.datum <= 2006-12-31
            GROUP BY user_tabelle.name
            ORDER by auswahl DESC
            LIMIT 15";
      $result = mysql_query($sql) OR die(mysql_error());

...
...

dann gehts, sonst kommen fehler oder einfach keine Ausgabe

steffenk ·

das ist verkehrt: $datum1=="2006-01-01";
== ist ein Vergleichsoperator 😉 Ansonsten geht es auch so

"SQLANWEISUNG $datum SQLANWEISUNG"

laufkraft ·

das hier

== ist ein VergleichsoperatorAnsonsten geht es auch so

dachte ich eigentlich auch, aber ich bin so verwirrt dass ich es sogar so probiert habe.

Aber ich habs nun korrigiert und mit folgendem Code gehts:

 $datum1="2006-01-01";
$datum2="2006-12-31";

           $sql = "SELECT user_tabelle.name, user_tabelle.id, sum(trdaten.dist) auswahl
            FROM user_tabelle
            INNER JOIN trdaten ON user_tabelle.id = trdaten.userid WHERE trdaten.rubrik IN (1, 2)
			AND	trdaten.datum >= '.$datum1.'
			AND	trdaten.datum <= '.$datum2.'
            GROUP BY user_tabelle.name
            ORDER by auswahl DESC
            LIMIT 15";
      $result = mysql_query($sql) OR die(mysql_error());

VIELEN DANK! War echt so verwirrt das selbst sowas einfachse nicht mehr klappt!