| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

24-05-2005, 13:45
|
|
teriax
Newbie
|
|
Registriert seit: Jan 2003
Ort: Tal der Wupper
Beiträge: 38
|
|
Einträge nach und nach einblenden - wechsel nach x Stunden - Wie?
Hallo zusammen!
Ich möchte mir ein kleines PHP-Tool basteln bei dem nach und nach die Einträge aus einer MySQL-Datenbank ausgelesen und angezeigt werden.
Es soll dabei keine Liste der Einträge gezeigt werden, sondern jeder Eintrag soll einzeln gezeigt werden, nach x Stunden soll dann der nächste Eintrag gezeigt werden.
Sagen wir als Beispiel 10 Einträge mit einem wechsel nach 4 Stunden.
Wenn nun alle Einträge angezeigt werden, wenn also 40 Stunden vergangen sind, soll wieder der erste Eintrag gezeigt werden.
Hat vielleicht einer von Euch einen Tip, oder einen Code ;-) für mich ? Irgendwie stehe ich nämlich auf dem Schlauch!
|

24-05-2005, 13:48
|
|
ankh
Member
|
|
Registriert seit: May 2005
Beiträge: 304
|
|
machst du cronjob...
php selbst ist nur "one shot" code...
|

24-05-2005, 13:51
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von ankh
machst du cronjob...
|
nö, braucht er m.E. nicht.
wenn ich das richtig verstanden habe, will er nur so etwas analoges wie eine tageszeitabhängige begrüßung o.ä. realisieren.
es braucht also lediglich eine formel, um x elemente gleichmäßig über einen zeitraum von y stunden zu verteilen.
da würde ich vermutlich einfach den timestamp modulo durch (anzahl sekunden in y stunden) teilen - und dann schauen, in welchem "interval" der divisionsrest liegt.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

24-05-2005, 13:52
|
|
teriax
Newbie
|
|
Registriert seit: Jan 2003
Ort: Tal der Wupper
Beiträge: 38
|
|
Danke für den Tip, aber im Grunde sollte es ohne Cronjob realisiert werden!
Auch mit Cronjob hätte ich noch das Problem der Abfrage der Einträge, und der Auswahl des zu zeigenden Eintrags.
Ich glaube ich denke einfach viel zu kompliziert!
|

24-05-2005, 13:53
|
|
prego
PHP Senior
|
|
Registriert seit: May 2005
Ort: Hey ropp, hinne riwwer unn wirrer zuricke!
Beiträge: 1.602
|
|
Hi,
nimm ein neues Feld DateTime in deine Datenbank mit auf - "firstshown" oder so. Prüf dann einfach bei jedem Aufruf, oder das Ding schon älter als vier stunden ist.
SELECT * FROM tab WHERE (unix_timestamp(firstshown)+(4*3600)) < now() ORDER BY firstshown DESC LIMIT 0,1
Wenn dann hier 0 results sind:
SELECT * FROM tab ORDER BY firstshown LIMIT 0,1
um den ältesten eintrag zu finden.
danach dann direkt
UPDATE tab SET firstshown = now() WHERE id=<deine id>
So irgendwie.
__________________
so long, der-p | 72dpi-club
Microsoft IE-Manager Dean Hachamovitch bei der Vorführung des IE7 Beta Preview 2 am 20.3.2006:
"Wir hatten mit IE ganz offensichtlich was verschlafen."
|

24-05-2005, 13:54
|
|
teriax
Newbie
|
|
Registriert seit: Jan 2003
Ort: Tal der Wupper
Beiträge: 38
|
|
Zitat:
Original geschrieben von wahsaga
nö, braucht er m.E. nicht.
wenn ich das richtig verstanden habe, will er nur so etwas analoges wie eine tageszeitabhängige begrüßung o.ä. realisieren.
es braucht also lediglich eine formel, um x elemente gleichmäßig über einen zeitraum von y stunden zu verteilen.
da würde ich vermutlich einfach den timestamp modulo durch (anzahl sekunden in y stunden) teilen - und dann schauen, in welchem "interval" der divisionsrest liegt.
|
sowas in die Richtung, nur das meine "Tage" mehr als 24 Stunden haben ;-)
Wenn es nach der Zeit gehen würde, wäre es kein Problem, aber bei mehr als 24 Stunden komme ich ins stocken :-(
|

24-05-2005, 14:05
|
|
teriax
Newbie
|
|
Registriert seit: Jan 2003
Ort: Tal der Wupper
Beiträge: 38
|
|
Zitat:
Original geschrieben von prego
[B]nimm ein neues Feld DateTime in deine Datenbank mit auf - "firstshown" oder so. Prüf dann einfach bei jedem Aufruf, oder das Ding schon älter als vier stunden ist.
|
Nunja, darauf könnte ich irgendwie aufbauen, aber wenn ich nun für jeden Eintrag die Laufzeit angeben möchte?
mal 3 Stunden, mal 4 Stunden, mal 5 Stunden....
Dann sieht es wieder anders aus!
Ausserdem müsste ich doch auch die Erstellungs-Zeit speichern, oder nicht?! Irgenwie muss das Programm doch wissen welcher Eintrag als erstes eingeblendet werden soll!
...oder kann man da vielleicht noch (einfach) eine Rehenfolge festlegen?
|

24-05-2005, 14:05
|
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.746
|
|
nimm irgendwas (DB, Text-Datei, ...) um 2 Einträge zu speichern:
- Datensatz-ID: Nummer
- angezeigt: DateTime-Wert
bei jedem Request prüfst du, ob 4 Stunden schon vergangen ist, wenn ja, dann aktuelle Zeit und neues DS-ID rein schreiben und natürlich den DS auch anzeigen. Das war's.
|

24-05-2005, 14:09
|
|
asp2php
Banned
|
|
Registriert seit: Feb 2004
Beiträge: 11.746
|
|
Zitat:
Original geschrieben von teriax
Nunja, darauf könnte ich irgendwie aufbauen, aber wenn ich nun für jeden Eintrag die Laufzeit angeben möchte?
mal 3 Stunden, mal 4 Stunden, mal 5 Stunden....
Dann sieht es wieder anders aus!
|
Diese Info mußt du am DS selbst (also in der DB) festlegen
Zitat:
Ausserdem müsste ich doch auch die Erstellungs-Zeit speichern, oder nicht?! Irgenwie muss das Programm doch wissen welcher Eintrag als erstes eingeblendet werden soll!
...oder kann man da vielleicht noch (einfach) eine Rehenfolge festlegen?
|
die Sortierung kannst du z.B. mit order by ... in der Abfrage gestalten.
|

24-05-2005, 14:13
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Original geschrieben von teriax
sowas in die Richtung, nur das meine "Tage" mehr als 24 Stunden haben ;-)
Wenn es nach der Zeit gehen würde, wäre es kein Problem, aber bei mehr als 24 Stunden komme ich ins stocken :-(
|
was hat der unix timestamp mit "tagen" zu tun?
gar nichts.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

24-05-2005, 14:15
|
|
teriax
Newbie
|
|
Registriert seit: Jan 2003
Ort: Tal der Wupper
Beiträge: 38
|
|
Zitat:
Original geschrieben von asp2php
nimm irgendwas (DB, Text-Datei, ...) um 2 Einträge zu speichern:
- Datensatz-ID: Nummer
- angezeigt: DateTime-Wert
bei jedem Request prüfst du, ob 4 Stunden schon vergangen ist, wenn ja, dann aktuelle Zeit und neues DS-ID rein schreiben und natürlich den DS auch anzeigen. Das war's.
|
na Klar!
Einfach Textdatei "dazwischen" schieben, der Rest ergibt sich ja fast von selbst wenn das Erstellungsdatum mit in der DB gespeichert ist!
Thx!
PS: Irgendwie fehlt mir der Smilie der seinen Kopf gegen die Wand schlägt hier im Forum ;-)
|

24-05-2005, 14:19
|
|
teriax
Newbie
|
|
Registriert seit: Jan 2003
Ort: Tal der Wupper
Beiträge: 38
|
|
Zitat:
Original geschrieben von wahsaga
was hat der unix timestamp mit "tagen" zu tun?
gar nichts.
|
Hast ja recht... Hatte mich irgendwie verlesen...
jetzt ergibts einen Sinn ;-)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
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.
|
|
|
|
PHP News
|