Ausgabe zwischen 2 Datumsausgaben

shinbo

Mitglied
ich habe in meiner MYSQL Datenbank 2 Datum abgespeichert. Nun möchte ich das er mir dynamisch alle Datume ausgibt die dazwischen liegen.

Also zum Beispiel: 2010.05.01 und 2010.06.05 ist in der DB.

Jetzt soll eine Schleife kommen die mir 2010.05.01, 2010.05.02, 2010.05.03 bis zum 2010.06.05 ausgeben soll, dabei soll logicherweise berücksichtigt werden das einige Monate eben 28,30 oder 31 Tage haben. Mit einer einfachen schleife ist das leider nicht getan oder gibt es da eine simple MYSQL Abfrage? ...mein Script bringt mich nur bis zum ende eines Monats aber nicht darüberhinaus.
 
Soweit ich das hier beurteilen kann, müsstest du mit einer WHERE-Bedingung ziemlich weit kommen.

SELECT * FROM table WHERE date < x AND date > y
 
Leider nicht. In der DB stehen ja nur 2 Daumes. So gesehen das Start Datum und das End Datum. was dazwischen ist soll dynamisch ausgegeben werden. So wie oben beschrieben bekomme ich aber nur alle Ergebnisse die dazwischen liegen.
Ich scheitere an der Differenz Ausgabe.
 
Wenn das Start und Das Enddatum drin steht? Was willst du denn dazwieschen anzeigen?

Also, deine Tabelle sieht so aus

ID | START_DATE | END_DATE | WEITERE_FELDER
1 | 01.01.2010 | 31.01.2010 | ...


Dann willst du alle Datums aufgelistet? also in meinem Beispiel den ganzen Januar?
Hm.... ich weiss nicht ob das geht, Mit Variablen kann man zwar hochzählen, aber du müsstes 31 künstliche temporäre Datensätz generieren. Mit einfachem SQL geht das mWn nach nicht
 
Ganz genauso habe ich mir das vorgestellt. Ich bin ja schon so weit gekommen dass es für den jeweiligen Monat funktioniert, aber leider nicht über ein Monat hinaus.
Das habe ich:
Start Datum und das End Datum

Das Kann ich errechnen:
Tage insgesamt zwischen den jeweiligen Daten

Was muss ich berücksichtigen:
Tage des jeweiligen Monats
Differenztage bis Ende des jetzigen Monats
Differenz des nächsten Monates oder sogar Monate bis hin über ein Jahr hinaus bei Berücksichtigung der unterschiedlichen Tages des jeweiligen Monte (28,30,31).

So Machbar?
 
Dan presentier mal deine Lösung und wir können schauen wie wir die Grenzen aufbrechen können

Hab mal was einfaches zusemmengebaut
PHP:
<?php
//Testdaten von-bis
$date = $startdate = mktime(0, 0, 0, 1, 1, 2010); //1. Januar
$enddate = mktime(0, 0, 0, 3, 15, 2010); //15 März

//Ausgabeschleife
while($date <= $enddate){
    echo date('d.M.Y', $date);
    echo '<br />';
    $date = strtotime("+1 day", $date);
}

?>
 
Zuletzt bearbeitet:
Mein Script, wie es scheint war viel zu kompliziert angedacht und auch so umgesetzt. Dein Script scheint genau das zu machen was ich benötige. Meine letzte variante ist in eine do while schleife mit 3 for schleifen. Wenn ich mir das Script ansehe traue ich mich schon fast nicht mehr meins zu präsentieren.
 
Zurück