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!
|
MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren |

16.02.2005, 00:21:10
|
Anfänger
|
|
Registriert seit: Jul 2004
Ort: Kiel
Beiträge: 11
|
|
CMS-System mit Datum
Hallo,
ich habe ein existierendes, selbstgeschriebenes CMS, in dem ich das Datum der Einträge bisher nur primitiv in einem String gespeichert habe (Format: dd.mm.yyyy hh:mm).
Nun möchte ich dieses System erweitern, so dass ich Beiträge auch nach dem Datum sortieren kann, nach verschiedenen Richtlinien, zum Beispiel nur Jahr oder Jahr/Monat oder auch Jahr/Monat/Tag. Wie mache ich so etwas möglichst geschickt?
Ich weiß, dass es einen Datentyp DATE in MySQL gibt. Aber dazu gibt es zwei Fragen:
1. Wie füge ich ein Datum per INSERT ein, in PHP?
2. Kann ich damit die gewünschten Nachfragen (siehe oben) ausführen, im Stil "WHERE YEAR(`DATUM`)=`2004` AND MONTH(`DATUM`)=`12`" ? Wenn ja, wie?
Oder würdet ihr mir für mein Vorhaben eine andere Methode (z.B. manuelle Sortierung) vorschlagen? Sollte ich vielleicht einfach mehrere Integerwerte für "YEAR", "MONTH" etc. nehmen?
Vielen Dank für jegliche Hilfe.
Gruß,
Claus
|

16.02.2005, 00:30:26
|
 |
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: CMS-System mit Datum
[QUOTE=Claus]Ich weiß, dass es einen Datentyp DATE in MySQL gibt.[/url]
Wenn man von deinem bisherigen Format ausgeht, wären DATETIME oder Timestamp eigentlich sinnvoller, da du dort auch die Uhrzeit und nicht nur das Datum speichern kannst.
Zitat:
Zitat von Claus
1. Wie füge ich ein Datum per INSERT ein, in PHP?
|
Entweder du übergibst einen String im richtigen Format oder verwendest die MySQL-Funktion NOW(), um das aktuelle Datum zu verwenden.
Zitat:
Zitat von Claus
2. Kann ich damit die gewünschten Nachfragen (siehe oben) ausführen, im Stil "WHERE YEAR(`DATUM`)=`2004` AND MONTH(`DATUM`)=`12`" ? Wenn ja, wie?
|
wenn du beispielsweise nur die Daten aus dem Jahr 2004 haben möchtest, würdest du folgende Abfrage nehmen:
Code:
SELECT foo FROM bar WHERE YEAR(datecolumn) = '2004'
|

16.02.2005, 00:31:07
|
 |
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 40
Beiträge: 5.255
|
|
AW: CMS-System mit Datum
ich würde vorschlagen, das du das format "dd.mm.yyyy hh:mm" in einen timestamp umwandelst (welcher dann aber etwas ungenau ist, weil die übrigen sekunden fehlen) und damit dann arbeitest, ist meiner meinung nach wohl etwas einfacher...
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|

16.02.2005, 01:30:41
|
Anfänger
|
|
Registriert seit: Jul 2004
Ort: Kiel
Beiträge: 11
|
|
AW: CMS-System mit Datum
Hallo,
danke erstmal für die Vorschläge.
Ich habe jetzt erst einmal eine Testdatenbank erstellt, mit ID und DATUM.
Wenn ich jetzt NOW hinzufüge, wird jedoch nur YYYY-MM-DD hinzugefügt.
Code:
INSERT INTO `cms_test` ( `ID` , `DATUM` )
VALUES (
'', NOW( )
);
;
Die Ausgabe sieht so aus:
http://cvdb.de/avb/mysql/
Kann ich da noch etwas verändern, oder muss ich da einen anderen Datentyp nehmen?
Danke,
Claus
|

16.02.2005, 01:36:43
|
Anfänger
|
|
Registriert seit: Jul 2004
Ort: Kiel
Beiträge: 11
|
|
Sorry
Hallo,
ich habe mich vorhin nur im Manual ( http://dev.mysql.com/doc/mysql/en/datetime.html) verlesen.
Für mich brauche ich Datetype, das dann '0000-00-00 00:00:00' speichert.
Ich denke, das wars. Vielen Dank für die Hilfe.
Gruß,
Claus
|

16.02.2005, 09:04:02
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: Sorry
nimm bitte codings vorschlag an und speichere als timestamp. alles andere macht früher oder später nur ärger!
|

16.02.2005, 09:11:37
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 53
Beiträge: 4.748
|
|
Darf ich mal Klugscheißer spielen? "CMS-System" ist genau so ein Blödsinn, wie "LCD-Display", "RAM-Speicher", "HDD-Drive", usw. ;)
|

16.02.2005, 11:17:33
|
 |
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Sorry
Zitat:
Zitat von feuervogel
nimm bitte codings vorschlag an und speichere als timestamp. alles andere macht früher oder später nur ärger!
|
Was spricht deiner Meinung nach eher für TIMESTAMP statt DATETIME?
|

16.02.2005, 11:48:51
|
 |
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 40
Beiträge: 5.255
|
|
AW: CMS-System mit Datum
also meinener meinung nach kann man nen timestamp ohne großen aufwand in alle richtungen formatieren, was mit solchen datums-"strings" doch nur umständlicher wird. ich denke da auch speziell an künftige änderungen an seinem cms. der timestamp ist für mich die ideale basis für datums/zeit formatierungen. direkt ein datum zuspeichern mache ich nur in ausnahmefällen, beispielsweise bei nem gästebuch, da wäre die umwandlung wirklich nicht nötig. bei nem cms jedoch, ist der timestamp das idealste, weil auch nimand weis was es künftig für änderungen am cms geben kann.
das ich da nicht so falsch liege mit meiner meinung beweist uns auch promt wieder das forum. in keiner der 84 tabellen wird man eine andere formatierung als das timestamp-format finden.
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|

16.02.2005, 11:58:20
|
SELFPHP Guru
|
|
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
|
|
AW: CMS-System mit Datum
in meinen augen ist ein datum gespeichert als timestamp einfach das "reinste" format. mit ihm lässt sich in meinen augen am simpelsten rechnen und andererseits - wie schon erwähnt - jedes beliebige andere format darstellen. wenn man ein mal ein format vorgegeben hat ist es immer etwas mühselig.
p.s.: wie oft gabs hier schon die frage nach einer möglichkeit, die xxx der letzten 3 tage aus einer db auszulesen? wenn ich ein datum als timestamp habe, ziehe ich einfach von dem jetzigen 60*60*24*3 ab und muss mich nicht mit irgendwelchen datums-funktionen zurecht finden.
Geändert von feuervogel (16.02.2005 um 11:59:45 Uhr)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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 11:18:25 Uhr.
|