peter 443: php timeout

Ich habe eine Datenbank, die die Spalten date (YY-MM-DD HH:MM:SS) und value (also Zahlenwerte) enthält.

Ich möchte jetzt mit php die Werte jedes einzelnen Monats zusammenrechnen, zunächst einmal fürs erste Jahr.

Leider bekomme ich bei dem geschriebenen Code immer eine "timeout-Fehlermeldung" in verschiedenen Zeilen der Schleife.
Woran liegt das denn?

$mindatearray[1] = das niedrigste Monat der Datensätze.
$mindatearray[0] = das niedrigste Jahr der Datensätze.

  
for ($x = 0; $x < 12 ; $x++) { //läuft für jedes Monat ab dem 1. Datensatz  
	$x = $mindatearray[1];  
	  
		$betweenquery = "SELECT  
			SUM(value) as valuemonth  
		FROM  
			financials  
		WHERE  
			date  
		BETWEEN  
			'".$mindatearray[0]."-".$x."-1 00:00:00' and '".$mindatearray[0]."-".$x."-30 23:59:59'"; //  
			  
		$betweentable = $db->query($betweenquery);  
  
		if (!$betweentable) {  
			die ('Fehlermeldung!');  
		}  
		  
		$betweenresult = $betweentable->fetch_assoc();  
		  
		$between = array();  
		$between[$mindatearray[0].'-'.$x] = $betweenresult['valuemonth'];  
  
}  

Ich habe ähnliche Schleifen noch für die vollen Jahre und für das letzte Jahr geschrieben. Die berechneten Werte werden dann in Prozent umgerechnet und als Höhe von Balken in einer Grafik ausgegeben.

Aber es geht nicht, da ich immer Timeout habe. Was ist falsch daran?

  1. Hallo,

    Leider bekomme ich bei dem geschriebenen Code immer eine "timeout-Fehlermeldung" in verschiedenen Zeilen der Schleife.
    Woran liegt das denn?

    $mindatearray[1] = das niedrigste Monat der Datensätze.
    $mindatearray[0] = das niedrigste Jahr der Datensätze.

    for ($x = 0; $x < 12 ; $x++) { //läuft für jedes Monat ab dem 1. Datensatz
    $x = $mindatearray[1];

    # Sonstiger Code, der $x nicht ändert

    }

      
    Deine Monate laufen von 0 bis 11, in der ersten Zeile Deines Schleifenrumpfes setzt Du Deine Zählvariable fest auf einen Wert, der sicher zwischen 0 und 11 liegt. Wie kann da die Abbruchbedingung jemals erreicht werden?  
      
    
    > Ich habe ähnliche Schleifen noch für die vollen Jahre und für das letzte Jahr geschrieben.  
      
    Mit GROUP BY und DAY() wird es vermutlich überhaupt nicht erforderlich sein, SQL-Statements in Schleifen abzusetzen. Sowas ist fast immer keine gute Idee.  
      
      
    Freundliche Grüße  
      
    Vinzenz