Zahlenvergleich stimmt nicht

Zero2000

Erfahrenes Mitglied
Hallo

Ich habe eine Datenbank (mysql) in der monatlich Daten gespeichert werden.
Nun wollte ich mir so eine Art Tendenz erstellen das ich weis ob ich z.B. diesen Monat
mehr von irgendwas verbraucht habe als im letzten. Das funktioniert aber leider nicht so ganz wie ich mir das vorstelle.

Ich habe 2 Abfragen an die DB, die erste wählt die Datensätze des aktuellen Monats aus.
Hier verwende ich in der Abfrage folgende Zeile
PHP:
DATE_ADD('$alle_bis', INTERVAL -1 MONTH) AS tendenz_bis
um mir den Vormonat zu holen.

Die zweite Abfrage ähnelt der ersten nur das ich das Datum aus DATE_ADD verwende.

In einer Schleife stelle ich dann die Summen der Monate gegenüber und zeige mit farbigen Pfeilen die Tendenz an. Rot = mehr Grün = weniger u.s.w.
PHP:
if($menge_sum > $tmenge_sum)
$tendenz = "<img src='img/tendenz_mehr.gif' alt='Mehr' border='0'>";
Das bringt mir aber leider falsche Ergebnisse.

Beispiel: dieser Monat 130 Vormonat 51 bekomme ich statt eines roten einen grünen Pfeil.
Zwischendurch stimmen mal 4 oder 5 Ergebnisse mittendrin und dann wieder nichtmehr.

Die ABFRAGE
PHP:
// Abfrage der DB
	$komplett_azr_res = mysql_query("SELECT kennzeichen, SUM(menge) AS menge_sum, SUM(wert_ohne_ust_a) AS wert_ohne_ust_a_sum, DATE_ADD('$alle_von', INTERVAL -1 MONTH) AS tendenz_von, DATE_ADD('$alle_bis', INTERVAL -1 MONTH) AS tendenz_bis FROM dkvauswertung WHERE kennzeichen IN ('$kfz_array') AND lieferdatum BETWEEN '$alle_von' AND '$alle_bis' GROUP BY kennzeichen")or die("Fehler:<br>".mysql_error());
	$num_komplett_azr=mysql_num_rows($komplett_azr_res);

Meine beiden Fragen sind nun:
Wieso ist das so?
und
Wenn im Vormonat z.B. a b c d e f vorkommt, aber in diesem nur a b d e f dann wird die Liste ohne c fortgeführt was in der aktuellen Liste ab d die Werte um eins versetzt anzeigt weil ja c fehlt.

Ich hoffe bei dem Kauderwelsch was ich hier fabriziert habe blickt irgendjemand durch.

MfG
Maik
 
Was mir so spontan auffällt ist, das du in deiner ersten DATE_ADD die erste Variable in Anführungszeichen setzt. Wenn mich nicht alles täuscht, schreibt das $variable und nicht den Wert in die Datenbank, lasse die Anführungszeichen einfach mal weg ;)
edit:
In der Datenbank Abfrage ersetze die Variablen mal durch '".$variablenname."' (Zum Besseren lesen: ' ".$varname." ')
 
Also das mit dem DATE_ADD funktioniert. Ich habe mir die Abfrage mit echo mal ausgeben lassen und bekomme genau den Zeitraum des Vormonats den ich einstelle.

Ich kann es aber trotzdem mal so versuchen wie Du es mir geschrieben hast.
 
Also das mit dem DATE_ADD funktioniert. Ich habe mir die Abfrage mit echo mal ausgeben lassen und bekomme genau den Zeitraum des Vormonats den ich einstelle.

Ich kann es aber trotzdem mal so versuchen wie Du es mir geschrieben hast.

Das wird keinen Unterschied bringen wenn du den kompletten Query eh in doppelten Hochkommas hast. Und leserlicher wirds davon auch nicht - nur das das Highlight wieder geht ;)
 
Vielleicht sollte ich das Problem mit dem fehlerhaften Vergleich erstmal lassen.
Viel wichtiger wäre mir erstmal das immer die komplette Liste aus dem array ausgelesen und angezeigt werden.
Ich habe ein Array mit Fahrzeugen z.B.
Audi
BMW
Mercedes
Seat
Im Januar tanken alle Kfz.
Wenn z.B. im Februar nur audi und seat tanken, wie bekomme ich das dann hin das er mir die anderen aus dem Januar mit anzeigt nur dann eben mit 0 als Tankmenge

Oder ganz einfach gefragt: Hat jemand schonmal sowas ähnliches wie eine Tendenzanzeige erstellt
 
Zurück