Counter

H7-25

Grünschnabel
Hallo

Mich interessiert wie ich mein Counter von gestern, vorgestern, vorvorgestern u.s.w anzeigen lassen kann
Bis jetzt habe ich nur von heute

PHP:
$sql = "SELECT * FROM $online WHERE DATE_FORMAT(tag, '%d') = DATE_FORMAT(NOW(), '%d');"; 
$result = mysql_query($sql); 
$heute = mysql_num_rows($result);

hab bissle gegoogelt und folgendes gefunden
%d für heute steht und %m für monat

müsste ich jetzt nicht %H für 24 stunden eintragen wenn ich die von gestern haben möchte?
 
Wie wird den das Datum gespeichert? Wenn es im Format "YYYY-MM-TT" vorliegt, kannst du es so lösen:

PHP:
// gestern
$sql = "SELECT * FROM $online WHERE datum = DATE_SUB(CURDATE(), INTERVAL 1 DAY)";

// vorgestern
$sql = "SELECT * FROM $online WHERE datum = DATE_SUB(CURDATE(), INTERVAL 2 DAY)";
 
Danke
Der bringt mir jetzt aber ein fehler
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
 
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
Hallo

Ich habe jetzt das gefunden
PHP:
$sql = "SELECT * FROM $online WHERE DATEDIFF(NOW(), tag) = 1";

kann mir einer den code erklären.
Warum = 1?
 
Ganz einfach. das Statement gibt dir nur die Datensätze zurück bei denen die Differenz zwischen heute un dem Tag = 1 ist. Also entweder morgen oder heute. Und da du für morgen noch keine Eintragungen hast bleibt nur noch der Datensatz von gestern.

Lässt sich relativ leicht an dem Funktionsnamen DATEDIFF erkennen. Zu deutsch Tagesdifferenz.
 
Danke Technoblade, jetzt versteh ich es ein bißchen...
und wenn ich jetzt eine 2 mache, habe ich dann von vorgestern oder von gestern und vorgestern?
Oder zb. eine 7, habe ich dann die Zahl vor sieben tagen bzw 1 woche bzw letzte woche?


Welche möglichkeiten gibt es denn noch?
 
Wie wird bei dir den das Datum gespeichert. Gibt es für den Tag, den Monat und das Jahr jeweils separate Felder in der Datenbank/Tabelle?

Mit den Möglichkeiten die du auch selber gefunden hast sollte sich dein Problem lösen lassen.

Zu deiner Frage in der PN. Ich habe "datum" nur als Beispiel verwendet. Es steht für das Feld in der Tabelle welches das Datum enthält.
 
bei mir wird es in DATETIME gespeichert

Also lautet der Code bei mir so?

PHP:
// gestern 
$sql = "SELECT * FROM $online WHERE tag = DATE_SUB(CURDATE(), INTERVAL 1 DAY)";
 
Zurück