Mysql DB: Datum via PHP aus Tag, Monat, Jahr auslesen und sortieren

Newcomer1

Mitglied
Hallo wieder mal!
Problem, schein auf der Leitung zu stehn:

Ich habe eine Datumabfrage geschrieben mit der ich von mysql Daten auslese
Die Struktur der Datenbank ist folgende:
Code:
id|tag|monat|jahr|nochwas|usw.

Wenn ich die Daten auslese, so wird das ganze automatisch nach "id" sortiert.
Das ist aber ein Problem da ältestes Datum nicht kleinster id entspricht.

Also meine Frage
Wie kann ich "tag|monat|jahr|" bei der mysql Abfrage
Code:
"Select * From tabelle oder by DATUM formatiert"

einsetzten, dass es eine geordnete Ausgab gibt?
Möglicherweise mit einem Array? Bitte um Vorschläge, Hinweise, Links etc.


Dankeeeee :-)
 
Re: Mysql DB: Datum viaphp aus tag,monat,jahr auslesen und sortieren

Hab da grade was gefunden, funktioniert aber nicht:
Kann mir das jemand näher erläutern:
PHP:
mysql> 
SELECT CONCAT(last_name,', ',first_name) AS full_name ORDER BY full_name
 
Re: Mysql DB: Datum viaphp aus tag,monat,jahr auslesen und sortieren

Vermutlich bringt das ', ' den Wurm rein
Code:
SELECT CONCAT(last_name,', ',first_name) AS full_name ORDER BY last_name,first_name
Zu deinem Datumsproblem:
Es ist absoluter Quatsch die Bestandteile eines Datums in eigene Spalten zu speichern.
Dafür gibt es das Spaltenformat Date 'yyyy-mm-dd' und das eignet sich wunderbar zum Sortieren, Rechnen und Selektieren:
http://dev.mysql.com/doc/refman/4.0/de/date-and-time-functions.html
 
Re: Mysql DB: Datum viaphp aus tag,monat,jahr auslesen und sortieren

Danke für deine Antwort,

Das mit dem Datum hab ich vorher bereits so gehabt wie du es beschreibst.
Leider habe ich es nicht geschaft damit eine Datumsabfrage zu schreiben.
Hab das deshalb geändert.
Vorher wars so

z.B. das Formular:
Code:
<form name="" action="zu der Auswertung" method="post"> //zur mysql abfrage
Datum angeben:(YYYY-MM-DD)<input type="text" name="datum_formular"><br>
<input type="submit" value="Abfrage">
</form>

Die MySql Anweisung:

Code:
$datum_formular = $_POST['datum_formular']; //Datum von Formular übergeben$sql = mysql_query("SELECT * FROM tabelle WHERE datum = '$datum_formular' "); 
while ($ds = mysql_fetch_object($sql)) {
   $id = $ds -> id;
   $datum = $ds -> datum; //Hier lwird das Datum im Format 'YYYY-MM-DD' ausgelesen...   $ort = $ds -> ort;
   $link = $ds -> link;
   $band = $ds -> band;
   $veranstaltung = $ds -> veranstaltung;
   $info = $ds -> info;

echo "alles was oben steht...";

Die Ordnung eh wunderbar so mit mysql datum YYYY-MM-DD
Liegt vermutlich an den Strichen "-" dass nix übergeben wird

gruß,
 
Re: Mysql DB: Datum viaphp aus tag,monat,jahr auslesen und sortieren

OK HAT SICH ERLEDIGT!

Bin wirklich auf der Leitung gestanden tststs

Brauch ja nur die sql anweisung "...WHERE datum LIKE '$datum'..."einsetzten.

Trotzdem, Danke nochmal!
 
Hallo,

ich hab ein Problem und zwar ich habe in meiner Datenbank ein Datum in Datetime drinstehen und will ich aus dem Datum 2008-01-05 nur den Monat rausfiltern

und mit einer mysql_query ausgeben, kann mir jemand helfen?

Grüße
 
Hi,
es gibt für MySql zahlreiche Datumsfunktionen.

entweder so:
SQL:
SELECT
	MONTH(`datum`) AS `monat`
FROM
	`tabelle`
Damit bekommst du den Monat als Zahl (1-12).

Oder so:
SQL:
SELECT
	MONTHNAME(`datum`) AS `monat`
FROM
	`tabelle`
Gibt den Monatsnamen (auf englisch) zurück.

//edit:
Und hier noch eins:
SQL:
SELECT
	DATE_FORMAT(`datum`,"%d") AS `monat`
FROM
	`tabelle`
 
Zuletzt bearbeitet von einem Moderator:
Zurück