CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
16.08.2005, 11:47:05
|
Anfänger
|
|
Registriert seit: Aug 2005
Beiträge: 12
|
|
Gültigkeit eines Eintragsermitteln
HAllo!
Habe eine Tabelle namens NEWS. So in der Tabelle ist die id,betreff,nachricht,erstelltam,kategorie.
so bei kategorie gibt es folgende Inhalte Immer,Standard,Standard2. Wenn die Kategorie "Immer" ist dann soll der Beitrag für immer angezeigt werden und wenn "Standard" dann nur 7 Tage und bei Standard2 14 Tage.
so jetzt möchte ich die news aus der mysql tabelle auslesen. ist ja gar kein problem nur wie krieg ich das hin das der mir nur die ausgibt die noch gueltig sind. die spalte erstelltam enthält DATETIME.
habt ihr da nen tipp für mich oder gibt es eine funktion dafür?
|
16.08.2005, 12:06:07
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Gültigkeit eines Eintragsermitteln
benutze doch _einfach_ einen unixtimestamp fürs datum und schon kommst du mit den 4 grundrechenarten aus...so wie du es jetzt hast musst du die datums-funktionen von mysql benutzen, damit kenn ich mich gar nicht aus, aber das hier sollte dir weiter helfen:
http://dev.mysql.com/doc/mysql/en/da...functions.html
|
16.08.2005, 12:18:18
|
Anfänger
|
|
Registriert seit: Aug 2005
Beiträge: 12
|
|
AW: Gültigkeit eines Eintragsermitteln
hab es jetzt so geändert das unter kategorie nicht mehr die namen stehen sondern die tage die die news gültig sein sollen.
also steht jetzt unter kategorie 7,14,365
wie kann ich denn jetzt die datensätze ausgeben die nicht älter als die angegebenen tage in der kategorie sind??
|
16.08.2005, 12:50:00
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Gültigkeit eines Eintragsermitteln
okay, ich geb dir mal nen tipp:
gültig: 2000 sekunden.
erstellt am: 123000 sekunden nach dem 1.1.1970.
wenn jetzt mehr als 125000 ( = 123000 + 2000) sekunden seit dem 1.1.1970 vergangen sind, ist er nicht mehr gültig.
wie viele sekunden seit dem 1.1.1970 vergangen sind, sagt dir time().
dazu brauchst du + oder -. einfach, ne?
Geändert von feuervogel (16.08.2005 um 12:51:47 Uhr)
|
16.08.2005, 13:07:07
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Gültigkeit eines Eintragsermitteln
Da dein Datum ja im DATETIME-Format gespeichert ist, kann ein Vergleich mit DATE_SUB() durchaus Sinn machen.
|
17.08.2005, 17:52:27
|
Anfänger
|
|
Registriert seit: May 2003
Ort: Frankfurt/Main
Beiträge: 12
|
|
AW: Gültigkeit eines Eintragsermitteln
Klar lässt sich mit dem DATETIME arbeiten, allerdings ist im allgemeinen die Verwendung des Unix-Timestamps zu empfehlen, weil er einfachere Operationen, nämlich die math. Grundrechenarten, unterstützt. Das ganze wird zudem noch geringfügig schneller sein, weil keine konvertierung stattfindet. MySQL rechnet sicherlich intern nicht mit Daten, sondern auch mit Timestamps.
|
18.08.2005, 08:26:33
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Gültigkeit eines Eintragsermitteln
Zitat:
Zitat von Unrealfighter
so bei kategorie gibt es folgende Inhalte Immer,Standard,Standard2. Wenn die Kategorie "Immer" ist dann soll der Beitrag für immer angezeigt werden und wenn "Standard" dann nur 7 Tage und bei Standard2 14 Tage.
so jetzt möchte ich die news aus der mysql tabelle auslesen. ist ja gar kein problem nur wie krieg ich das hin das der mir nur die ausgibt die noch gueltig sind. die spalte erstelltam enthält DATETIME.
habt ihr da nen tipp für mich oder gibt es eine funktion dafür?
|
Entweder date_add() oder to_days(). Warum soll man mit Sekunden rechnen, wenn Tage gemeint sind?
Ungetestet, da keine passende Tabelle vorhanden:
Code:
SELECT
<spaltenliste>
FROM
tabelle
WHERE
kategorie = 'Immer'
OR
(kategorie = 'Standard'
AND
(to_days(erstelltam) < to_days(current_date) - 7))
OR
(kategorie = 'Standard2'
AND
(to_days(erstelltam) < to_days(current_date) - 14))
So oder so ähnlich...
Geändert von meikel (†) (18.08.2005 um 08:33:49 Uhr)
|
18.08.2005, 08:32:43
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Gültigkeit eines Eintragsermitteln
Zitat:
Zitat von Quadaptor
MySQL rechnet sicherlich intern nicht mit Daten, sondern auch mit Timestamps.
|
MySQL rechnet intern mit Timestamps im Format: YYYYMMDDhhmmss. Also keinen UNIX Timestamp.
http://dev.mysql.com/doc/mysql/de/da...ime-types.html
|
18.08.2005, 11:25:16
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Gültigkeit eines Eintragsermitteln
Zitat:
Zitat von meikel
Warum soll man mit Sekunden rechnen, wenn Tage gemeint sind?
|
weil sekunde die grundeinheit der zeit ist und man so flexibler ist?
|
18.08.2005, 12:21:03
|
|
SELFPHP Guru
|
|
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
|
|
AW: Gültigkeit eines Eintragsermitteln
Zitat:
Zitat von feuervogel
weil sekunde die grundeinheit der zeit ist und man so flexibler ist?
|
Den grundsätzlichen Nachteil des Timstamps kennst Du hoffentlich:
eingeschränkter Gültigkeitsbereich. Hinzu kommt noch, daß man 2* im Jahr falsch rechnet. Nämlich an den Tagen, an denen die Sommerzeit anfängt bzw. aufhört.
Rechne einfach mit Tagen. Die mysql Funktion to_days() ist da schon fast unschlagbar, wenn es darum geht, mit Tagen zu hantieren.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 12:41:36 Uhr.
|