Auktion beenden

itnobby

Mitglied
Hallo zusammen,

ich weiss nicht genau ob es hier hineingehört, aber das System das ich programmiere ist komplett in PHP bzw. teilweise JavaScript geschrieben.

Momentan arbeite ich an einem Auktionssystem und hätte dazu eine Frage.

Auktionsende wird in der DB gespeichert.

1. Enddatum : "DD.MM.YYYY"
2. Endzeit : "HH:MM"

Jetzt habe ich das Problem wie ich die Auktion automatisch beenden lasse?

Das heisst wenn das Datum 20.02.2004 und die Uhrzeit 22:40 überschritten ist soll in der Datenbank der Wert aktiv geändert werden. Jedoch soll dies alles automatisch erfolgen.

MfG
itnobby
 
Du musst den DB-Eintrag einfach mit der date() Funktion vergleichen!
Da du aber als Datumsformat in der DB ein nicht zu gebrauchendes Format nutzt, musst du den aus der DB geholten wert erst mit explode() aufsplitten.
Geht ganz einfach, stöber mal ein wenig bei google oder http://www.selfphp.info :)!
 
Danke, das ist mir schon klar... aber wie vergleiche ich ständig das Datum ob die Auktion abgelaufen ist. Eine Funktion? Wo einbinden? etc.?

MfG
itnobby
 
Ich habe für einen Dienstplan etwas entfernt ähntliches....

und zwar, ich gehe über einen "Timestamp" Datenfeld der in der MySQL Datenbank

der Vergleich ob neu oder alt sieht so aus:

PHP:
$current_day = date(YmdHis);

if ( $row->DATUM < $current_day) { $old = true; }
else							 { $old = false; }
 
Original geschrieben von itnobby
Danke, das ist mir schon klar... aber wie vergleiche ich ständig das Datum ob die Auktion abgelaufen ist. Eine Funktion? Wo einbinden? etc.?

MfG
itnobby
So etwas kannst du nicht ständig überprüfen, da PHP Scripte nunmal nur ausgeführt werden, wenn sie aufgerufen werden.

Meiner Meinung nach akzeptable Lösung:
Bau ein Script, welches beim Aufruf alle Auktionen schließt (irgendeine DB-Spalte auf close oder ähnliches setzt) die mittlerweile abgelaufen sind. Dieses Script packst du in eine Datei und includest sie in jeder Datei die man von deiner Seite aus aufrufen kann.

Das sollte reichen, denn solange niemand eine Seite aufruft, kann er auch nicht sehen, dass die Auktion, die eigentlich schon vorbei ist, noch als offen in der DB steht. Geht er hingegen auf die Seite um nachzugucken wird die Auktion geschlossen.

Kleiner Tip: Speicher das Enddatum + Zeit einfach als Unixtimestamp in der Datenbank. Da slässt einem so viel mehr Spielraum in seinen Scripten und hält diese schön kurz. Außerdem sparst du dir eine Spalte in der Tabelle ;)
 
Zurück