46356
Goto Top

2 Daten miteinander vergleichen? - Fehler?

Schönen Abend.


Um verschiedene Bilanzen auszugeben, habe ich mit PHP ein kleines Script erstellt:

			$date_today = date("d.m.Y"); $time = date("H.i");  
				$mktimev1 = mktime(0, 0, 0, date("m")-3, date("d"),  date("Y"));  
			$date_3mago = date("d.m.Y",$mktimev1);  
							$mktimev1 = mktime(0, 0, 0, date("m"), date("d"),  date("Y")-1);  
			$date_12mago = date("d.m.Y",$mktimev1);  

			// Article Query - 1DAY
			$abfrage = "SELECT ID, Datum, Status, Beschreibung, Preis FROM article WHERE Status = 'Verkauft' AND Datum = '$date_today'";  
			$ergebnis = mysql_query($abfrage) or die(mysql_error()); while($row = mysql_fetch_object($ergebnis))	{ $sumtoday += $row->Preis;	}		
			
			// Article Query - 3MO
			$abfrage = "SELECT ID, Datum, Status, Beschreibung, Preis FROM article WHERE Status = 'Verkauft' AND Datum >= '$date_3mago' AND Datum <= '$date_today'";  
			$ergebnis = mysql_query($abfrage) or die(mysql_error()); while($row = mysql_fetch_object($ergebnis))	{ $sum3mo += $row->Preis; }
			
			// Article Query - 1YEAR
			$abfrage = "SELECT ID, Datum, Status, Beschreibung, Preis FROM article WHERE Status = 'Verkauft' AND Datum >= '$date_12mago' AND Datum <= '$date_today'";  
			$ergebnis = mysql_query($abfrage) or die(mysql_error()); while($row = mysql_fetch_object($ergebnis))	{ $sum1Y += $row->Preis;	}
			
			echo $sumtoday."<br>".$sum3mo."<br>".$sum1Y;  

Es wird das aktuelle Datum vom Server genommen und mit mktime einmal 3 Monate und einmal ein Jahr zurückgerechnet.
Nun sollte logischerweise der Jahresumsatz größer gleich den anderen Umsätzen sein. Dies ist jedoch nicht der Fall [...].
--> Der 3 Monats Rückblick ist am größten und der Tages bzw. der Rahresrückblick gleich groß :o ?

Die 3 Monate Rückschau funktioniert.
Nur die Jahres Rückschau nicht.


Freue mich auf Antworten,
Alex

Content-ID: 119257

Url: https://administrator.de/forum/2-daten-miteinander-vergleichen-fehler-119257.html

Ausgedruckt am: 23.04.2025 um 12:04 Uhr

filippg
filippg 28.06.2009 um 20:09:13 Uhr
Goto Top
Hallo,

drei Dinge fallen auf:
1. Der Code ist bescheiden formatiert. Bei einer Anweisung pro Zeile und Einrücken von Blocks (z.B. while-Schleife) sieht man Fehler viel leichter
2. Die $sum-Variablen werden gleich mit += verwendet. Es schadet überhaupt nichts, sie vorher auf 0 zu setzen.
3. Die Summen in PHP zu bilden ist nur begrenzt geschickt. MySQL kann das letztlich besser. SELECT SUM(Preis) FROM article WHERE status = 'Verkauft' AND DATUM...
Und wenn du dann zum Debugging $abfrage ausgeben lässt bin ich mir sicher, der Fehler ist schnell gefunden.

Gruß

Filipp
46356
46356 28.06.2009 um 21:59:19 Uhr
Goto Top
Hallo Filipp!

Danke für Deine Antwort.

Zu 1.:
In meinem Editor (Aptana) wird der Code anderst dargestellt - sprich formatiert. Ich hab ihn einfach reinkopiert und nicht nachformatiert.

Das mit 2. und 3. klingt recht vielversprechend.
Werde es gleich morgen ausprobieren und dann bescheid geben face-smile

Grüße,

Alexander