24 stunden abfrage

Du könntest mit:
SQL:
SELECT *, UNIX_TIMESTAMP(`datum`)+(24*60*60) AS `old_time` FROM `tabelle`
bzw. mit:
SQL:
SELECT *, UNIX_TIMESTAMP(`datum`)+86400 AS `old_time` FROM `tabelle`
eine "virtuelle" Spalte "old_time" anlegen, deren Inhalt sich aus dem Datum/der Zeit der Spalte "datum" plus 24h als Timestamp zusammensetzt.
Diesen generierten Timestamp kannst Du nun wie eine normale Tabellenspalte abfragen und z.B. mit dem aktuellen Timestamp vergleichen:
PHP:
<?php
// Datenbankabfrage ist erfolgt
// nun kommt der Vergleich innerhalb der while-Schleife
 
if($row['old_time'] >= time() /* Ist die gespeicherte Zeit plus 24h grösser oder gleichgross zur aktuellen Zeit? (oder war es umgekehrt!?) */) {
    // dann tu was
    // z.B. mysql_query("UPDATE..... ") oder mysql_query("DELETE..... ")
    echo "Für ".$row['datum']." (ID: ".$row['id'].") ist die 24h Frist abgelaufen!";
} else {
    echo "Seit ".$row['datum']." sind noch keine 24h vergangen!";
}
?>
Da mit dem Sternchen * ja auch die anderen Spalten (z.B. ID) selektiert werden, sollte es kein Problem sein das (?) Update-/Delete-Query explizit für einen bestimmten Eintrag auszuführen. ;)

Es gibt zwar auch unter MySQL die Möglichkeit mit z.B. den Ablaufsteuerungsfunktionen oder einer IF-Anweisung Vergleiche durchzuführen, allerdings kann ich Dir dazu nichts weiter sagen.

[edit]
Achso und wenn du den Timestamp wieder in Datum und Zeit umrechnen möchtest, gibt es dafür schon eine fertige Funktion in PHP. Sie nennt sich date()
Man kann aber auch, wenn es sich um einen in der Datenbank gespeicherten Timestamp handelt, mit der MySQL Funktion FROM_UNIXTIME() arbeiten:
SQL:
SELECT *, FROM_UNIXTIME(`spalte_mit_timestamp`, "%d.%c.%Y - %H:%m:%s" ) AS `german_date_and_time` FROM `tabelle`
Siehe auch die MySQL Datums- und Zeitfunktionen (in Verbindung mit den Konfigurationsangaben der dort genannten DATE_FORMAT() Funktion).

Schaue einfach mal im PHP Bereich (wo dieser Thread übrigens auch hingehören würde)
Dort war dieser Thread ursprünglich. ;)
Wurde aber verschoben, da es sich um eine Frage der Datenbankabfrage handelt.
Wobei ich persönlich es für eine Frage von MySQL UND PHP halte..... womit der Thread dann wieder zurückgeschoben gehören würde. :D
[/edit]
 
Zuletzt bearbeitet:
Hut ab Dr Dau vor der Mühe die du dir gemacht hast ;)
Stimmt an UNIX_TIMESTAMP() habe ich gar nicht mehr gedacht :-( (habe ich schon eine Ewigkeit nicht mehr verwendet, daher eine gute Auffrischung auch für mich :p )

Das Kategorie-Thread-Problem ist bei solchen Anfragen häufig der Fall. Entschuldigung wegen meines Einwandes oben ;) überlassen wir es einfach den Mods sich mit dem Kategorie-Problem herum zu schlagen ^^

EDIT: Wie das mit der If-Abfrage in MySQL funktioniert, lässt sich übrigens hier nachlesen ;) http://dev.mysql.com/doc/refman/5.1/de/control-flow-functions.html

EDIT2: @Dr Dau sry, habe ich übersehen :p naja doppelt hält besser ;) Wenn er fragen hat, kann ich ihm da weiter helfen (allerdings poste ich ungern fertigen Code)
 
Zuletzt bearbeitet:
EDIT: Wie das mit der If-Abfrage in MySQL funktioniert, lässt sich übrigens hier nachlesen ;) http://dev.mysql.com/doc/refman/5.1/de/control-flow-functions.html
Scroll mal einen Thread höher. ;)

Ich habe mit den genannten Funktionen nie gearbeitet, daher kann ich dazu auch nichts sagen und habe sie nur verlinkt.
Wenn Grunge den Vergleich also wirklich schon während der Abfrage durchführen will, muss er sich halt selbst da durchkämpfen und ggf. auf Hilfe von jemand anderen hoffen. :(
 

Neue Beiträge

Zurück