datensätze der letzten 2 monate zählen....

aherzog

Erfahrenes Mitglied
Hallo

wieder mal bin ich am basteln und komme einfach nicht weiter.
Ich möchte die Datensätze der letzten 2 Monate zählen.
Das versuche ich so zu lösen...:confused::confused:
PHP:
$monat = date("m",mktime(0, 0, 0, date("m")-2, date("d"), date("Y")));
$jahr = date("Y");
//SQL-Abfrage ausführen
$res = mysql_query("SELECT * FROM termine WHERE status=1 AND (MONTH(datum)>='$monat' AND YEAR(datum)>='$jahr'");
$anzahl = mysql_num_rows($res);

7 Datensätze sind in diesen 2 Monaten, es werden aber 2 mehr angezeigt.
es funnktioniert lediglich das alle aus dem Jahre 2008 gezählt werden, aber die Monate berücksichtig die Abfrage nicht...wo liegt den der Fehler

Vielen Dank für die Hilfe..
Andreas
 
Ich persönlich würde dir einfach empfehlen, das Datum als Timestamp abzuspeichern, dann ist das alles wesentlich einfacher und du kannst es variieren wie du es willst.
So ist doch alles um einiges komplizierter ;)

Grüße SimonErich
 
ok...

das wäre zu schaffen,,(mktime)

mir ist aber nicht klar wie ich das in die sql-abfrage reinbringen kann..
 
Hallo @aherzog

Ich weiß nicht wie weit das jetzt möglich ist, aber ich meine die Daten als timestamp schon in der Datenbank abspeichern.

Dann kannst du einfach so abfragen:

PHP:
mysql_query("SELECT * FROM blabla WHERE time >= '". atime()-(24*3600*2) ."'");

Und bei deinem SQL Statement fehlt eine Klammer, die geschlossen wird.
(Beginnt vor MONTH ;) )
 
Danke für deinen Tip...

habe jedeoch in der Zwischenzeit durch Zufall einen super Tip gefunden und damit funktioniert es super....

mit SUBDATE('$datum', INTERVAL 60 DAY) gehts...

Hie noch der Code.
PHP:
$datum = date("Y-m-d");
$res = mysql_query("SELECT * FROM termine WHERE status=1 AND SUBDATE('$datum', INTERVAL 60 DAY)<=datum");
$anzahl = mysql_num_rows($res);

Gruss Andreas
 
Zurück