[PHP] Seite extrem langsam

atlan428

Well-known member
ID: 43536
L
13 Mai 2006
269
10
Ich habe ein kleines Script programmiert, dass mir in einer grafischen Übersicht gebaute Gebäude aus der Datenbank ausgibt. Der Code sieht wie folgt aus:

PHP:
echo "<table>";
for($x=1;$x<7;$x++) {
	echo "<tr>";
	for($j=1;$j<7;$j++) {
		$nr++;
		$p=mysql_fetch_object(mysql_query("SELECT name FROM baumenu WHERE Platz = ".$nr." AND Festung = ".$vorlage.""));
		$geb = $p->name;
		if($geb == '') {
			 $geb = "empty"; 
			 $pic = "empty"; 
			 $stufe = "";
		} else {
			$g=mysql_fetch_object(mysql_query("SELECT ".$geb." FROM Festungen WHERE Nr = ".$AktInsel.""));
			$stufe = $g->$geb;
			$pic = $geb;
			if($i->imbau_geb == $geb && $geb != 'empty') $pic .= "1";
		}
		echo "<td><a href='baumenu.php?akt=add&id=".$nr."'><img src='".$daten->skin."Baumenu/".$pic.".gif' border='0' onMouseOver=\"geb('".$nr."','".$geb."','".$stufe."')\" onMouseOut=\"geb('','','')\"></a></td>";
	}
	echo "</tr>";	
}
echo "</table>";

Leider dauert die Generierung der Seite manchmal über 2 Sekunden. Woran liegt das? Was kann ich am Code für die Geschwindigkeit optimieren? Liegt es evtl. daran, dass in der MySQL-Tabelle ca. 8000 Einträge sind?
 
Die Größe der Tabelle is wurscht.
Interessant ist die Anzahl der Queries und das sind bis zu 72 8O

Warum holst du nicht am Anfang alle Daten und gehst dann erst in die Schleife ?
Außerdem gibst du die MySQL-Ergebnisse nicht mehr frei. Zwar nicht tragisch, kann aber bei derart vielen Queries den Speicher in die Knie zwingen.