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



## Newcomer1 (4. November 2005)

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: 
	
	
	



```
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 
	
	
	



```
"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


----------



## Newcomer1 (4. November 2005)

*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:

```
mysql> 
SELECT CONCAT(last_name,', ',first_name) AS full_name ORDER BY full_name
```


----------



## German (4. November 2005)

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

Vermutlich bringt das ', ' den Wurm rein

```
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


----------



## Newcomer1 (4. November 2005)

*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:

```
<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:


```
$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ß,


----------



## Newcomer1 (4. November 2005)

*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!


----------



## bigbrother09 (8. Juli 2009)

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


----------



## Loomis (8. Juli 2009)

Hi,
es gibt für MySql zahlreiche Datumsfunktionen.

entweder so:

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

Oder so:

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

//edit:
Und hier noch eins:

```
SELECT
	DATE_FORMAT(`datum`,"%d") AS `monat`
FROM
	`tabelle`
```


----------

