Datensätze der letzten 24 Stunden ausgeben PHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
brauche
code
date
datenbank
datensatz
datum
feld
festlegen
format
letzten eintrag
limit
realisieren
resultat
spalte
tabelle
tag
url
verbindung
verschiedene ausgaben
-
Hallo !
Ich möchte tag/date">Datensätze in meiner Datenbank zählen. Dabei will ich 3 verschiedene Ausgaben haben ( letzte 24std / letzte 7 tage / letzte 30 tage ).
Damit will ich Einträge von Usern zählen.
Zurzeit werden diese Einträge nur in einer Usertabelle gespeichert.
Ungefähr so
User|Einträge
xxxxx|5
Wie würdet Ihr die Einträge der letzten 24 std. / 7 tage / 30 tage ausgeben?
Ich habe keine Idee, wie ich das realisieren könnte. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
davy schrieb:
Hallo !
Ich möchte Datensätze in meiner Datenbank zählen. Dabei will ich 3 verschiedene Ausgaben haben ( letzte 24std / letzte 7 tage / letzte 30 tage ).
Damit will ich Einträge von Usern zählen.
Zurzeit werden diese Einträge nur in einer Usertabelle gespeichert.
Ungefähr so
User|Einträge
xxxxx|5
Wie würdet Ihr die Einträge der letzten 24 std. / 7 tage / 30 tage ausgeben?
Ich habe keine Idee, wie ich das realisieren könnte.
ich würde ein timestamp/date feld adden was mit NOW() bzw. CURRENT_TIMESTAMP beim einfügen die Zeit setzt
so kannst du die eintrage später filtern
Beitrag zuletzt geändert: 2.6.2013 13:41:57 von n0tiert -
Hallo
mittels
geht das. Wobei die Spalte `time` den Dateityp DATETIME haben sollte.SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 24 HOUR); SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 7 DAY); SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 30 DAY);
Grüße -
limabone schrieb:
Hallo
mittels
geht das. Wobei die Spalte `time` den Dateityp DATETIME haben sollte.SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 24 HOUR); SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 7 DAY); SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 30 DAY);
Grüße
Das geht aber nur, wenn es das Format d-m-y gibt, oder?
Ich habe einen Timestamp im Feld. Wie geht das damit?
In meiner User Tabelle habe ich ja auch nur den letzten Eintrag eines Users.
Dann brauche ich noch eine Tabelle, oder? Wie würdet ihr das machen? -
davy schrieb:
limabone schrieb:
Hallo
mittels
geht das. Wobei die Spalte `time` den Dateityp DATETIME haben sollte.SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 24 HOUR); SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 7 DAY); SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 30 DAY);
Grüße
Das geht aber nur, wenn es das Format d-m-y gibt, oder?
Ich habe einen Timestamp im Feld. Wie geht das damit?
In meiner User Tabelle habe ich ja auch nur den letzten Eintrag eines Users.
Dann brauche ich noch eine Tabelle, oder? Wie würdet ihr das machen?
welches format hast du den als result , date-time timestamps oder unix timestamps ? -
n0tiert schrieb:
davy schrieb:
limabone schrieb:
Hallo
mittels
geht das. Wobei die Spalte `time` den Dateityp DATETIME haben sollte.SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 24 HOUR); SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 7 DAY); SELECT * FROM `db_xxxxxx_1` WHERE `time` > DATE_SUB(DATE(NOW()), INTERVAL 30 DAY);
Grüße
Das geht aber nur, wenn es das Format d-m-y gibt, oder?
Ich habe einen Timestamp im Feld. Wie geht das damit?
In meiner User Tabelle habe ich ja auch nur den letzten Eintrag eines Users.
Dann brauche ich noch eine Tabelle, oder? Wie würdet ihr das machen?
welches format hast du den als result , date-time timestamps oder unix timestamps ?
Als Beispiel habe ich sowas: 1368229333
also unix timestamp wahrscheinlich -
<?php // Verbindungs-Objekt samt Zugangsdaten festlegen @$db = new mysqli('mysql.lima-city.de', 'USERxxxxxx', 'pw','db_xxxxxx_1'); // Verbindung überprüfen if (mysqli_connect_errno()) { printf("<br>Verbindung fehlgeschlagen: %s<br>", mysqli_connect_error()); exit(); } $ip = $_SERVER['REMOTE_ADDR']; $stamp = date("Y.m.d - H:i"); echo "Datum : ", $stamp ," IP : ", $ip , "<br>"; // Tabellenkopf echo " <table> <thead> <td>ID</td> <td>Ip</td> <td>Name</td> <td>Datum</td> <td>x</td> <td>xx</td> </thead> "; // Datensatz-Ausgabe festlegen $sql_befehl = "SELECT * FROM xyz"; if ($resultat = $db->query($sql_befehl)) { // Durchlaufen der Datenbankabfrage while($datensatz = $resultat->fetch_array() ){ // Datenfelder – Inhalte extrahieren und // als Variablen zur Verfügung stellen extract($datensatz); // Tabelleninhalt echo " <tr> <td>$ID</td> <td>$ip</td> <td>$Name</td> <td>$Datum</td> <td>$x</td> <td>$xx</td> </tr> "; } // Speicher freigeben $resultat->close(); } else { // Meldung bei Fehlschlag echo "Zugriff fehlgeschlagen!"; } // Tabellenende echo "</table>"; // Verbindung zum Datenbankserver beenden $db->close(); ?>
ich habe das in ner tabelle aus ausgabe > mußt nur auf deine zugangsdaten und datenbank zurechstuzen
das kannst dann noch sortieren nach datum in der spalte $datum -
$query1 = "SELECT * FROM `db_xxxxxx_1` WHERE `time` <= '".time()-(24*60*60)."'"; $query2 = "SELECT * FROM `db_xxxxxx_1` WHERE `time` <= '".time()-(7*24*60*60)."'"; $query3 = "SELECT * FROM `db_xxxxxx_1` WHERE `time` <= '".time()-(30*24*60*60)."'";
Und davy... Es gibt einen Unterschied zwischen Unix-Timestamps und SQL-Timestamps :D
Beitrag zuletzt geändert: 2.6.2013 15:40:34 von fabo -
Bei Unix timestamp format (1370205900):
SELECT DATE_SUB(FROM_UNIXTIME(added_unixtimestamp), INTERVAL 12 HOUR) AS `date` FROM `mainmenu_links` LIMIT 0, 30
Ausgabe:
"2013-06-02 10:45:00"
Formatieren des Unix timestamp:
SELECT DATE_FORMAT(DATE_SUB(FROM_UNIXTIME(added_unixtimestamp), INTERVAL 12 HOUR), '%d.%m.%Y - %H:%i') AS `date` FROM `mainmenu_links` LIMIT 0, 30
Ausgabe:
"02.06.2013 - 10:45"
Bei normalen timestamp format (2013-06-02 11:33:47)
SELECT DATE_FORMAT(DATE_SUB(added_timestamp, INTERVAL 12 HOUR), '%d.%m.%Y - %H:%i') AS `date` FROM `mainmenu_links` LIMIT 0, 30
mit 'DATE_FORMAT' kannst du dir den result auch entsprechend formatieren
'%d.%m.%Y - %H:%i'
Beitrag zuletzt geändert: 2.6.2013 16:24:04 von n0tiert -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage