SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 13.09.2009, 20:35:17
Tombone
Guest
 
Beiträge: n/a
Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

Hallo,
ich habe folgendes Problem.

Ich möchte später per Cronjob eine Datenbank-Aktion starten, die kontrollieren soll,ob eine Anzeige abgelaufen ist. Wenn ja, soll diese Aktion die abgelaufenen Anzeigen löschen.

Die entsprechenden DB-Felder:
s_id - auto_increment
zeitstempel vom Typ (int10) -> Datum des Eintrags
gueltigbis vom Typ (int10) -> Datum des Ablaufs

Beide scheinen im Timestamp-Format in die DB gespeist worden sein (10-stellige Zahl)

Nun möchte ich, daß die Anzeige gelöscht wird, wenn das aktuelle Datum dieses Datum (gueltigbis) erreicht hat bzw. 1 Sekunde darüber ist.

Ich habe es mit diesem Code versucht, doch er findet immer ALLE Anzeigen, obwohl bei einer der Timestamp kleiner ist als der aktuelle Tages-Timestamp.


Code:
SELECT s_d from meinetabelle  WHERE   UNIX_TIMESTAMP(now()) > UNIX_TIMESTAMP('gueltigbis' )
Kann mir einer weiterhelfen?

Gruß
Tom
Mit Zitat antworten
  #2  
Alt 13.09.2009, 20:49:44
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

Zitat:
mysql> select UNIX_TIMESTAMP('gueltigbis');
+------------------------------+
| UNIX_TIMESTAMP('gueltigbis') |
+------------------------------+
| 0 |
+------------------------------+
1 row in set, 1 warning (0.00 sec)
ja, der UNIX_TIMESTAMP von einer zeichenkette (markiert durch die ') ist 0.
Mit Zitat antworten
  #3  
Alt 13.09.2009, 20:52:55
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

außerdem ist doch das format von gueltigbis int(10). wieso willst du diesen wert noch umwandeln? zudem sagt das handbuch:

Zitat:
UNIX_TIMESTAMP() assumes that its argument is a datetime value in the current time zone.
Mit Zitat antworten
  #4  
Alt 13.09.2009, 21:29:14
Tombone
Guest
 
Beiträge: n/a
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

Hi...vielen Dank für die schnelle Antwort.

Ich habe soeben noch ein wenig getestet und dies funktioniert glaube ich. Geht der Code so deiner Meinung nach? Habe ihn noch etwas erweitert. Code... so wird die Anzeige in der DB als "aktiviert bzw. deaktiviert" gekennzeichnet. Das gleiche kann ich ja auch dann mit dem Löschen machen.

Code:
Update meinetabelle SET code  = '1' WHERE gueltigbis < UNIX_TIMESTAMP()
Habe auch gerade nochmal nachgesehen:
Im PHP Code habe ich ein Beispiel für dich, wie der Timestamp in das Feld "gueltigbis" vom Typ int10 eingespeist wird.

Code:
mysql_query("UPDATE ".$table." SET code  = '5' WHERE gueltigbis <'".time()."' ");
Die Time-Funktion schreibt mir doch den Timestamp in das Feld oder? Kann ich diesen Wert dann mit UNIX_TIMESTAMP berechnen? Es scheint ja bei mir jetzt lokal zu funktionieren!

Gruß
Tom

Geändert von Tombone (13.09.2009 um 21:50:56 Uhr)
Mit Zitat antworten
  #5  
Alt 13.09.2009, 22:40:52
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

time() (php-funktion) erzeugt einen unix-timestamp. UNIX_TIMESTAMP() (mysql-funktion) nimmt einen datetime-wert (mysql) und macht daraus einen unix-timestamp.
Mit Zitat antworten
  #6  
Alt 14.09.2009, 11:15:32
Tombone
Guest
 
Beiträge: n/a
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

Ok...also kann ich in meinem Fall den UNIX_TIMESTAMP nehmen? Mit oder ohne der now()-Funktion?
Code:
UNIX_TIMESTAMP(now())
Sorry, bin nicht so der Prog-Flash :-)

Grüße
Tom
Mit Zitat antworten
  #7  
Alt 14.09.2009, 11:18:37
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

UNIX_TIMESTAMP() ohne Parameter gibt die Unixzeit zurück. NOW() brauchst du also nicht mehr.
Mit Zitat antworten
  #8  
Alt 14.09.2009, 11:38:12
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

Ich mag keine Unix Timestamps in der DB.
Die MySQLer haben extra für solche Zwecke den Datentype DATETIME erfunden. Also sollte man ihn auch nutzen.
Mit Zitat antworten
  #9  
Alt 14.09.2009, 11:51:23
Crisps Crisps ist offline
Junior Member
 
Registriert seit: Oct 2008
Alter: 47
Beiträge: 274
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

Datetime nimmt doppelt so viel Platz ein als ein Unix Timestamp (bzw. INT). Aber mit Datetime lässt es sich deutlich besser/komfortabler/einfacher arbeiten.
Mit Zitat antworten
  #10  
Alt 14.09.2009, 20:55:42
Tombone
Guest
 
Beiträge: n/a
AW: Anzeige löschen wenn Datum erreicht ist -> UNIX_TIMESTAMP?

Alles roger!

Vielen dank nochmal für eure Hilfe. Bin echt begeistert von der Anzahl der Posts. Es gibt leider Foren, in denen viele meinen einen persönlichen Krieg ausführen zu müssen oder von einem Anfänger Dinge erwarten, für die Profis Jahre brauchten.

Wenn man in einem Forum Hilfe sucht, brauch man die sofort und möchte nicht tagelang Manuals lesen, was in vielen Foren als "erste Hilfe" angeboten wird und einen Anfänger sowieso nichts helfen.

Das mal kurz zu meinen Eindrücken in ANDEREN Foren.

Aber Danke...an die, die auf meine Frage geantwortet haben :-)

Grüße
Tom
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gruppieren nach Datum jger3110 PHP Grundlagen 0 09.08.2008 00:23:48
Sortierung nach Datum mit Order by nach Konvertierung ins Deutsche Format falsch carlos7262 MySQLi/PDO/(MySQL) 2 12.04.2007 09:43:32
Datum anzeige geht nicht Respeckt PHP Grundlagen 19 07.09.2006 09:58:33
datei automatisch an einen bestimmten datum löschen SGG PHP Grundlagen 3 13.11.2004 13:03:03
Dateiimport zu mysql Lars_oha PHP für Fortgeschrittene und Experten 10 18.09.2003 09:10:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:07:32 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt