Mysql & PHP Ausgabe Zeitraum

piti66

Erfahrenes Mitglied
Hey,

ich will eine kleine Statistik machen, welche nach Zeitraum auf eine Mysql-Tabelle zugreift.
PHP:
SELECT COUNT(*) AS anzahl, SUM(betrag) AS bet, datum FROM user WHERE datum between '".$von."' AND '".$bis."'

Ausgabe:

Datum Anzahl Anträge Kreditbeträge 11.04.2008 1 333 € 11.05.2008 1 333 € 11.05.2008 1 333 € 11.05.2008 1 333 € Summen 4 1332 €

Die klappt auch wunderbar, aber ich brauche auch die Tage, in dem der Wert 0 ist, also alle Tage im Zeitraum. Kann man die Mysql-Anweisung dazu verwenden/umstellen? Nach meinen Recherchen ehr nicht.
Also muss wohl eine andere Variante her. Vielleicht alle Tage des Zeitraums ausgeben mit php und wenn es ein Ergebnis im Array gibt statt 0 dann den wert ausgeben? Nur wie gebe ich die Tage des Zeitraums aus?

mfg

Sebastian
 
Könntest du deine Tabellenstruktur etwas genauer beschreiben? Dann erkläre bitte nochmal welcher Wert 0 ist und von welchem Zeitraum du redest und die gewünschte Ausgabe genau erklären. Das alles zusammen würde es allen viel leichter machen dir zu helfen.

Denn hiermit:
Code:
Datum Anzahl Anträge Kreditbeträge 11.04.2008 1 333 € 11.05.2008 1 333 € 11.05.2008 1 333 € 11.05.2008 1 333 € Summen 4 1332 €
kann ich gerade überhaupt nichts anfangen.
 
Hey,

0-Werte gibt es im eigentlich sinn nicht. Es gibt in der Datenbank-Tabelle immer Einträge mit einem Datum, nur halt nicht für jeden Tag. Wenn ich aber einen Zeitraum von wegen mir 1.12.2008 bis 5.12.2008 habe und dort nur ein Wert vom 4.12.2008 drin steht, möchte ich aber dass nicht nur der 4.12 ausgeben wird, sondern auch der 1.12,2.12,3.12 und 5.12 und weil da nichts in der Datenbank steht dann eben mit dem Wert 0 und der 4.12 bekommt dann eine 1 für einen Datenbankeintrag.

So ungefähr sieht die Datenbanktabelle aus(bissel gekürzt):

CREATE TABLE `user` (
`id` INT(11) NOT NULL AUTO_INCREMENT ,
`betrag` VARCHAR(10) NOT NULL ,
`anr` VARCHAR(4) NOT NULL ,
`name` VARCHAR(255) NOT NULL ,
`vname` VARCHAR(255) NOT NULL ,
`datum` DATETIME NOT NULL ,
`aktiv` TINYINT(1) NOT NULL ,
PRIMARY KEY (`id`)
);

Wie gesagt es gibt nicht zu jedem Datum einen Eintrag, aber ich will trotzdem jedes Datum ausgeben mit 0 halt.

mfg

Sebastian
 
Jemand muss doch ne Idee haben? Geht auch ne reine PHP-Funktion.Also Zeiträume von bis ausgeben...?
 
du könnstest innerhalb einer Schleife die gewuenschten Tage, oder Monate durchlaufen.
mit einer Count Variable dein Start und End Datum errechnen und damit die DB abfragen.
Für Tage:
PHP:
while ($i<31) { 
   $i++; 
//   $start + $ende berechnen

    $sql  = "SELECT id FROM TABLE WHERE zeit < '$start' and zeit > '$ende' ";
//  $data_array füllen
}
 
Dass würde auch nicht gehen, weil die Zeiträume ja auch vom 23.2.2008 bis 18.3. laufen könnten, also über einen Monat drüber.
 
Zurück