datum vergleichen und bei bedarf löschen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

datum vergleichen und bei bedarf löschen

Beitrag von Lord_Femto »

hallo. ich möchte gern ein php script für eine homepage entwickeln, doch weiß nicht, wie ich anfangen soll.

www.pandemicbrew.de/gigs.htm .

dort sind verschiedene gigs (auftritte) zu sehen, die die bandleute mittels formular adden können.

ich möchte nun, dass folgendes passiert. wenn das datum des gigs überschritten ist, dann soll der jeweilige eintrag in der datenbank gelöscht werden.
das datum ist mit mysql erzeugt worden und dann umgestellt. also kein varchar.

zuerst muss ich doch die zeit des servers herausfinden, dann miteinander vergleichen und dann bei zutreffen, löschen, oder?
ich weiß bloß nicht, wie ich anfangen soll und welche functionen ich einsetzen soll. ob nun date() oder mktime() oder doch lieber strtotime(). die andere frage ist ja, wo ich diesen code einschreiben muss? in die datei des rechten frames?

es kommt nicht auf die zeit an. ein tag danach ist schon vollkommen ok.
danke im voraus.
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Ich würde solche Sachen evtl. gleich auf MySQL-Ebene lösen: http://dev.mysql.com/doc/mysql/en/Date_ ... tions.html

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

diese art und weise ist natürlich viel besser. danke für den tipp.

aber bitte sag mir, was ich für eine function oder command nehmen soll.
das sind ja noch mehr, als bei php!!!
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Was für 'nen Datentyp hat denn das Datumsfeld?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

ich nutze für die tabelle den datentyp DATE
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Dann würde ich es mal mit 'nem einfachen Vergleich probieren:

Code: Alles auswählen

WHERE feld_inhalt < CURDATE()
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

hi philipp

cool danke. eine frage vorweg. wird dieser befehl jeden tag ausgeführt? denn ich will ja, dass er automatisch die posts löscht, wenn das datum überschritten ist und nicht jeden tag über die sql abfrage gehen.

und zweitens.

heißt der sql befehl dann:

Code: Alles auswählen

DELETE * FROM `PB-Gigs` WHERE `datum2` < CURDATE()
??? danke im voraus
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Ein SQL-Befehl wird immer nur dann ausgeführt, wenn die zugehörige PHP-Seite ausgeführt wird. Du solltest also die Abfrage immer vor der Anzeige der Datensätze ausführen - damit hast du das Problem auch gelöst.
Ansonsten scheint mir die Abfrage zu stimmen - wenn datum2 das entsprechende Feld in der DB ist.

Gruß, Philipp

BTW: vor dem Probieren immer ein Backup erstellen
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

hi philipp. ich bin es noch einmal.

habe es jetzt wie folgt gemacht:

Code: Alles auswählen

$vb = mysql_connect('xxxxxxx', 'xxxxxxx', 'xxxxxxx');
$daten = mysql_db_query("xxxxxxxxx", "delete * from `PB-Gigs` where CURDATE() > datum2", "select date_format(datum, '%d.%m.%Y') as datum, datum2, zeit, info, ort from `PB-Gigs` order by datum2");
$anzahl = mysql_num_rows($daten);
trotzdem tritt folgender fehler auf:


Code: Alles auswählen

Warning: mysql_db_query(): supplied argument is not a valid MySQL-Link resource in /home/www/web218/html/gigs-main.php on line 29

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web218/html/gigs-main.php on line 30
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Versuch mal

Code: Alles auswählen

$vb = mysql_connect('xxxxxxx', 'xxxxxxx', 'xxxxxxx');
mysql_select_db("xxxxxxxxx");
mysql_query("delete * from `PB-Gigs` where CURDATE() > datum2", $vb);
$daten = mysql_db_query("select date_format(datum, '%d.%m.%Y') as datum, datum2, zeit, info, ort from `PB-Gigs` order by datum2", $vb);
Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „Coding & Technik“