Datensätze aus der aktuellen und der vergangenen Woche auslesen

Jesus0190

Mitglied
Datensätze aus der aktuellen und der vergangenen Woche auslesen [gelöst]

Hallo Leute,

ich habe folgendes Problem und hoffe es kann jemand lösen.
Ich möchte für meine Homepage (Handball) aus dem aktuellen Spielplan die Spiele des letzten Wochenendes und die des nächsten Wochenendes ausgeben.

Jetzt das Problem, ich weiss nicht wie ich die Funktion date("W",$time) die die Woche zurückgibt in meinen SQL-Query einbinde.

Bisher mache ich es so, aber das mit den Timestamps geht nicht so gut...
PHP:
$time = time();

# für die letzte Woche:
$sql = "SELECT * FROM spielplan WHERE datum > $time-604800 AND datum < $time ORDER BY datum ASC";

#und für die nächste:
$sql = "SELECT * FROM spielplan WHERE datum > $time AND datum < $time+604800 ORDER BY datum ASC";

[EDIT]: Also das ganze soll natürlich wieder in 2 Abfragen

Ich hoffe, jemandem fällt was ein wie ich von dem Timestamp aus der Datenbank die Woche auslesen kann.

MfG
Jesus0190
 
Zuletzt bearbeitet:
PHP:
<?php
$w_heute = date('w'); // Heute als numerischer Tag der Woche ( 0:Sonntag - 6:Samstag)
$heute = mktime(0, 0, 0, date('m'), date('d'), date('Y')); // Timestamp von Heute ab 00:00 Uhr
$letztes_we = $heute - (($w_heute + 2) * 86400); // Timestamp des ersten Tages (Freitag) vom letzten Wochenende
$naechstes_we = $heute + ((5 - $w_heute) * 86400); // Timestamp des ersten Tages (Freitag) vom nächsten Wochenende

// Bsp. für die SQL-Abfragen:
// für das letzte Wochenende... 
$sql = "SELECT * FROM spielplan WHERE datum > ".$letztes_we." AND datum < ".($letztes_we + 259200)." ORDER BY datum ASC"; 

// ...und für das nächste: 
$sql = "SELECT * FROM spielplan WHERE datum > ".$naechstes_we." AND datum < ".($naechstes_we + 259200)." ORDER BY datum ASC";
?>
...vielleicht hilft dir sowas ja weiter...
 
@Gumbo:
Danke für die Info, hab es auch mit interesse durchgelesen, aber leider kann man nicht mit Timestamps arbeiten soweit ich das verstanden habe. Du kannst mich aber gerne eines besseren belehren ;)

Edit: Ich glaub ich hab das doch nicht richtig gelesen. *lol* mal schauen ob ich nicht doch zu faul bin...

@ludz:
Das werd ich auch mal ausprobieren, danke schonmal für die mühe die du dir gemacht hast. Werde dann auch berichten, ob es funktioniert.

MfG
Jesus0190
 
Sorry ludz, deins hab ich nichtmehr ausprobiert, weil Gumbo sein Hinweis alles gelöst hat.

Lösung(en):

PHP:
#letztes Wochenende:
$sql = "SELECT * FROM spielplan WHERE YEARWEEK(FROM_UNIXTIME(datum),1) = YEARWEEK(NOW()) ORDER BY datum ASC";

#nächstes Wochenende:
$sql = "SELECT * FROM spielplan WHERE YEARWEEK(FROM_UNIXTIME(datum),1) = YEARWEEK(NOW())+1 ORDER BY datum ASC";

Danke nochmal an beide.
 
Zurück