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 |
07.03.2005, 23:21:34
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
Datum in DB, danach sortieren
Hallo,
ich hab hier ein Problem mit der Verarbeitung von einem Datum, bzw. mehreren. Diese sollen in der Datenbank gespeichert werden wo sie mittels eines Forumulars eingetragen werden.
Nun hab ich das Problem beim Sortieren, dass das Datum auch korrtekt sortiert wird ( 03.12.2005 kommt nach 12.02.2005 und nicht umgekehrt).
Wie schreib ich das Datum am besten in die DB und frage/sortiere ich es danach am geschicktesten wieder ab?
Es geht hierbei um eine Terminplaung.
Die Suche hat mir leider nicht weiterhelfen können.
Ich hab ein wenig gestöbert.
Könnte ich es über den Timstamp lösen??
z.B. über das Formular wird $tag, $monat, $jahr übergeben, vor dem Eintrag in die DB wandle ich es in einen UNIX-Timestamp um:
$datum = mktime($monat, $tag, $jahr); <-- so korrekt??
Nur wie bekomm ich es dann aus der DB so ausgelesen das es in dt. Schreibweise und sortierbar ist??
Geändert von AlexD (07.03.2005 um 23:39:08 Uhr)
|
07.03.2005, 23:51:38
|
|
Junior Member
|
|
Registriert seit: Apr 2002
Ort: Belgique
Beiträge: 180
|
|
AW: Datum in DB, danach sortieren
Hallo,
das Format zum Speichern in die DB ist $jahr-$monat-$tag (siehst Du auch, wenn Du 'ne Spalte vom Typ date in einer TAbelle anlegst), so kann man die Daten auch richtig sortieren.
Ums Umzusetzten brauchst Du Dir nur 'ne kleine Funktion zu basteln, die den String zerlegt und so formatiert, wie Du's gerne hättest.
__________________
Wolles
Warum klettern Menschen auf einen Berg?
..vor allem, weil er da ist, Spock!
|
08.03.2005, 01:18:34
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
AW: Datum in DB, danach sortieren
Ich speichere das Datum nun in einer Spalte die als "Date" angelegt wurde.
Das Datum wird korrekt in die DB eingetragen.
Wenn ich es auslese, kommt eben dann jjjj.mm.tt
kann ich es nicht so formatieren:
$daten = $rows[datum];
$datum = date("d.m.Y", $daten);
hier kommt dann immer der: 01.01.1970 raus ?!
Geändert von AlexD (08.03.2005 um 01:19:02 Uhr)
|
08.03.2005, 01:25:18
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Datum in DB, danach sortieren
date() erwartet als zweiten parameter einen unix-timestamp und kein datum...
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
08.03.2005, 01:29:04
|
|
Junior Member
|
|
Registriert seit: Apr 2002
Ort: Belgique
Beiträge: 180
|
|
AW: Datum in DB, danach sortieren
Hast Du das Datum denn im richtigen Format in die DB gespeichert, also so:
2005-03-08
Das mit dem jjjj.mm.tt kann ich mir momentan auch nicht erklären, bin auch ein kleines bißchen zu müde und geh jetzt schlafen.
Der 01.01.1970 lässt darauf schliessen, daß die Variable $daten den Wert 0 hat.
Wie kommst du denn zu $rows[datum]?
__________________
Wolles
Warum klettern Menschen auf einen Berg?
..vor allem, weil er da ist, Spock!
|
08.03.2005, 01:32:16
|
|
Administrator
|
|
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|
|
AW: Datum in DB, danach sortieren
Zitat:
Zitat von |Coding
date() erwartet als zweiten parameter einen unix-timestamp und kein datum...
|
Zitat:
Zitat von wolles
Der 01.01.1970 lässt darauf schliessen, daß die Variable $daten den Wert 0 hat.
|
... ?
__________________
Gruß |Coding
---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.
www.qozido.de
|
08.03.2005, 09:22:40
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Datum in DB, danach sortieren
$daten muss nicht zwingend den wert 0 haben. Allerdings behandelt die Funktion [func]date()[/func] den zweiten Parameter wie 0, wenn es sich nicht um einen UNIX-Timestamp handelt.
Wenn du das im DATE-Format in der Datenbank speicherst, kannst du es mit DATE_FORMAT() schon direkt beim Auslesen formatieren. Oder du wandelst es mit UNIX_TIMESTAMP() in einen UNIX_TImestamp um und verarbeitest es dann in PHP mit [func]date()[/func] weiter.
|
08.03.2005, 10:12:23
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
AW: Datum in DB, danach sortieren
Ja, auf "DATE_Format (d, form)" bin ich auch grad gestoßen. Werd ich gleich mal versuchen.
Abfrage:
SELECT *, DATE_FORMAT (Datum, '%d.%m.%Y') AS date
OK ich denke so funktioniert es, das mit den DATE_FORMAT war der Hinweis!
Hier die Abfrage:
mysql_query("SELECT *, DATE_FORMAT(Datum, '%d.%m.%Y') AS date FROM gigs WHERE jahr=$jahr ORDER BY datum ASC
Das Jahr hab ich nochmal extra in die DB schreiben lassen, tu ich mich leichter auch wenns nicht ideal ist aber damit kann ich leben. ;-)
Vielen Dank für Eure Unterstüzung
Geändert von AlexD (08.03.2005 um 10:19:07 Uhr)
|
08.03.2005, 10:39:04
|
|
SELFPHP Guru
|
|
Registriert seit: May 2003
Beiträge: 7.187
|
|
AW: Datum in DB, danach sortieren
Zitat:
Zitat von AlexD
Das Jahr hab ich nochmal extra in die DB schreiben lassen, tu ich mich leichter auch wenns nicht ideal ist aber damit kann ich leben. ;-)
|
Da du dies vermutlich getan hast, um die WHERE-Klausel einfach hinzubekommen, hier noch ein Tipp:
Code:
SELECT
*,
DATE_FORMAT(Datum, '%d.%m.%Y') AS date
FROM
gigs
WHERE
YEAR(Datum) = $jahr
ORDER BY
datum ASC
Und noch zwei Links:
- http://php-faq.de/q/q-sql-select.html
- http://tut.php-q.net/mysql-einrueck.html
|
08.03.2005, 12:56:22
|
Junior Member
|
|
Registriert seit: Jun 2003
Beiträge: 186
|
|
AW: Datum in DB, danach sortieren
sieht gut aus, werde ich mir gerne zu Herzen nehmen! ;-)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
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 07:49:20 Uhr.
|