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-Key: 119257

Url: https://administrator.de/contentid/119257

Printed on: April 25, 2024 at 05:04 o'clock

Member: filippg
filippg Jun 28, 2009 at 18:09:13 (UTC)
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
Mitglied: 46356
46356 Jun 28, 2009 at 19:59:19 (UTC)
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