hilfdirselbst.ch
Facebook Twitter gamper-media
streicher
Beiträge: 3
26. Jun 2002, 12:54
Beitrag #1 von 3
Bewertung:
(543 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbankinhalt wird nicht sortiert


hallo forum,

ich bekomme in meinem kalender den inhalt der datenbank leider nicht in die zeilen mit dem korrekten datum. meine mysql-tabelle sieht folgendermaßen aus:

Datum | location_1 | location_2 | location_3 | ...
Das feld datum ist in der tabelle vom typ DATE.
In der html ausgabe wird ein monat wie folgt erstellt:
Code:

<?php
// anzahl der tage im monat
$motage = date("t", mktime(0,0,0,$monat,$tag,$jahr));

for ($y=1; $y <= $motage; $y++) {
echo "<tr><td>";
switch (date("w", mktime(0,0,0,$monat,$y,$jahr))) {
case 0: echo "So "; break;
case 1: echo "Mo "; break;
case 2: echo "Di "; break;
case 3: echo "Mi "; break;
case 4: echo "Do "; break;
case 5: echo "Fr "; break;
case 6: echo "Sa "; break;
}

echo date("j", mktime(0,0,0,$monat,$y,$jahr));

// datenbankinhalt als array
$zeile = mysql_fetch_array($result);

echo "</td><td>" . $zeile["location_1"] . "</td><td>" . $zeile["location_2"] . "</td><td>" . $zeile["location_3"] . "</td></tr>";
}
?>


leider bekomme ich die daten der datenbank nicht in die korrekte datumszeile. sind für den monat veranstaltungen an sechs verschiedenen tagen gespeichert, so setzt er mir diese in die ersten sechs tage des monats. ich kann mir vorstellen, das ich eine if-abfrage einsetzen muss, nur finde ich keine die funktioniert.
wer kann mir helfen?


[ Diese Nachricht wurde geändert von: Miro Dietiker am 2002-06-26 20:41 ] Top
 
X
Miro Dietiker
Beiträge: 699
26. Jun 2002, 20:53
Beitrag #2 von 3
Beitrag ID: #6072
Bewertung:
(543 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbankinhalt wird nicht sortiert


Hi streicher

DATE-Typen werden von der Datenbank als YYYY-MM-DD erwartet. Das heisst, man kann auf diese Daten etwa wie folgt zugreifen:

(Annahme, DB-Verbindung besteht bereits)
Code:

$sql = "SELECT * FROM datumtab";
$sql .= " WHERE Datum='".date("Y-m-d", mktime(0,0,0,$monat,$y,$jahr))) ."'";

$res = mysql_query($sql);
$zeile = mysql_fetch_array($res);
echo $zeile['location_1'];
echo $zeile['location_2'];


Das Ganze natürlich am Richtigen Ort in deiner Schleife!

Alles klar?

Greetz: Miro

[ Diese Nachricht wurde geändert von: Miro Dietiker am 2002-06-26 20:54 ]
als Antwort auf: [#6033] Top
 
streicher
Beiträge: 3
27. Jun 2002, 17:08
Beitrag #3 von 3
Beitrag ID: #6152
Bewertung:
(543 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbankinhalt wird nicht sortiert


vielen dank miro!!!
die schweizer haben es mal wieder erfunden

es hat geklappt! jedoch musste ich die datenbank-abfrage ändern:
$sql = "SELECT * FROM datumtab";
$sql .= " WHERE Datum='".date("Y-m-d", mktime(0,0,0,$monat,$y,$jahr)) ."'";
hat nicht hingehauen, weil die variable $y in der schleife nicht hochgezählt wurde.
erst als ich den ausdruck

date("Y-m-d", mktime(0,0,0,$monat,$y,$jahr))

in eine variable ($z) gepackt habe hat es funktioniert.
die sql-anweisung in der schleife sieht nun wie folgt aus:

$query = "SELECT * FROM datumtab WHERE Datum='$z'";

nochmals, danke für deine hilfe!!!!
als Antwort auf: [#6033] Top