Pagina laad de ene keer traag de andere keer snel

Status
Niet open voor verdere reacties.

Daan1987

Gebruiker
Lid geworden
6 jan 2010
Berichten
54
Hi,

Ik zit met het volgende. Onderstaande pagina wordt de ene keer snel geladen, en de andere keer duurt het soms tot 20 sec.
Ik kan echt niet vinden waar het in zit. Iemand enig idee wat betreft de code?

PHP:
if(empty($_GET['pagina']))
	header("location: ../../content.php?pagina=forum/forum");

$select = "SELECT * FROM forum_categorieen ORDER BY naam";
$query = mysql_query($select)or die(mysql_error());

if(mysql_num_rows($query) == 0)
{
	echo "<div class=\"titel\">Fout</div>";
	echo "<div class=\"bericht\">Er zijn nog geen forumcategorieen aangemaakt...</div>";
}
else
{
	while($list = mysql_fetch_object($query)) 
	{
		echo "<div class=\"titel\">";
		echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"98%\">";				
		echo "<tr>";
		echo "<td width=\"5%\"></td>";
		echo "<td width=\"45%\"><b>".htmlspecialchars($list->naam)."</b></td>";
		echo "<td width=\"10%\"><b>Topics</b></td>";
		echo "<td width=\"10%\"><b>Reacties</b></td>";
		echo "<td width=\"30%\"><b>Laatste post</b></td>";
		echo "</tr>";	
		echo "</table>";
		echo "</div>";
		echo "<div class=\"bericht\">";
		echo "<table cellpadding=\"2\" cellspacing=\"0\" border=\"0\" width=\"98%\">";				
	
		$select2 = "SELECT * FROM forum_subcategorieen WHERE categorieid = '".$list->id."' ORDER BY naam";
		$query2 = mysql_query($select2)or die(mysql_error());

		if(mysql_num_rows($query2) == 0)
		{	
			echo "<tr>";
			echo "<td colspan=\"5\">Geen subcategorieën aanwezig...</td>";
			echo "</tr>";
		}
		else
		{
			while($list2 = mysql_fetch_object($query2))			
			{
				$select3 = "SELECT * FROM forum_onderwerpen WHERE forum = '".$list2->id."'";
				$query3 = mysql_query($select3)or die(mysql_error());

				$select4 = "SELECT * FROM forum_onderwerpen WHERE forum = '".$list2->id."' ORDER BY id DESC LIMIT 0,1";
				$query4 = mysql_query($select4)or die(mysql_error());
				$list4 = mysql_fetch_object($query4);

				$select5 = "SELECT forum_reacties.datum AS datum, forum_reacties.auteur AS auteur, forum_reacties.naam_anoniem AS naam_anoniem 
								FROM forum_reacties JOIN forum_onderwerpen ON forum_reacties.topicid = forum_onderwerpen.id 
								WHERE forum_onderwerpen.forum = '".$list2->id."' ORDER BY forum_reacties.id DESC LIMIT 0,1";
				$query5 = mysql_query($select5)or die(mysql_error());
				$list5 = mysql_fetch_object($query5);

				if(mysql_num_rows($query4) == 0 && mysql_num_rows($query5) == 0)
					$laatste = "Geen";
				elseif($list4->datum > $list5->datum)
				{
					$select6 = "SELECT * FROM leden_gegevens WHERE id = '".$list4->auteur."'";
					$query6 = mysql_query($select6)or die(mysql_error());
					$list6 = mysql_fetch_object($query6);
					
					$door = $list6->gebruikersnaam;	
					$door = strip_tags($door);
					$door = strtolower($door);
					$door = ucwords($door);

					if ($list6->status == "Beheerder") 
						$gebruikersnaam = "$door";
					elseif ($list6->status == "SuperModerator") 
						$gebruikersnaam = "$door";
					elseif ($list6->status == "Moderator") 
						$gebruikersnaam = "$door";
					elseif ($list6->status == "Verbannen") 
						$gebruikersnaam = "$door";
					else
						$gebruikersnaam = $door;

					$laatste = "Door <a href=\"content.php?pagina=leden/profiel&amp;id=".$list6->id."\">".$gebruikersnaam."</a><br />@ ".date("d-m-Y H:i:s", strtotime($list4->datum))."";
				}
				else
				{
					if($list5->auteur != 99999999){
						$select7 = "SELECT * FROM leden_gegevens WHERE id = '".$list5->auteur."'";
						$query7 = mysql_query($select7)or die(mysql_error());
						$list7 = mysql_fetch_object($query7);
							
						$door = $list7->gebruikersnaam;	
						$door = strip_tags($door);
						$door = strtolower($door);
						$door = ucwords($door);
						
						if ($list7->status == "Beheerder") 
						$gebruikersnaam = "$door";
						elseif ($list7->status == "SuperModerator") 
							$gebruikersnaam = "$door";
						elseif ($list7->status == "Moderator") 
							$gebruikersnaam = "$door";
						elseif ($list7->status == "Verbannen") 
							$gebruikersnaam = "$door";
						else
							$gebruikersnaam = $door;
					} else {
						$gebruikersnaam = $list5->naam_anoniem;
					}

					$laatste = "Door <a href=\"content.php?pagina=leden/profiel&amp;id=".$list7->id."\">".$gebruikersnaam."</a><br />@ ".date("d-m-Y H:i:s", strtotime($list5->datum))."";
				}

				$select8 = mysql_query("SELECT COUNT(*) FROM forum_reacties,forum_onderwerpen WHERE forum_onderwerpen.forum = '".$list2->id."' AND forum_reacties.topicid = forum_onderwerpen.id")or die(mysql_error()); 
				$reacties = mysql_result($select8, 0); 

				echo "<tr onclick=\"window.location.href='content.php?pagina=forum/bekijk&amp;id=".$list2->id."'\">";
				echo "<td width=\"5%\"><img src=\"afbeeldingen/forum.gif\" alt=\"Forum\"/></td>";
				echo "<td width=\"45%\"><a href=\"content.php?pagina=forum/bekijk&amp;id=".$list2->id."\"><b>".htmlspecialchars($list2->naam)."</b></a><br />".htmlspecialchars($list2->omschrijving)."</td>";
				echo "<td width=\"10%\">".mysql_num_rows($query3)."</td>";
				echo "<td width=\"10%\">".$reacties."</td>";
				echo "<td width=\"30%\">".$laatste."</td>";
				echo "</tr>";
			}
		}
		
		echo "</table></div>";
	}
}
?>
 
Waar test je het script? Op een server op je computer of bij een host? Als het bij een host is lijkt het me eerder dat het aan de host ligt dan aan de code (het zou vreemd zijn dat precies dezelfde code de ene keer wel snel wordt uitgevoerd en de andere keer niet).
 
Waar test je het script? Op een server op je computer of bij een host? Als het bij een host is lijkt het me eerder dat het aan de host ligt dan aan de code (het zou vreemd zijn dat precies dezelfde code de ene keer wel snel wordt uitgevoerd en de andere keer niet).

Script draai ik bij een host! Tja vreemd maar waar! Iemand een idee?
 
Je kan proberen om een server op je computer te installeren en het daar op proberen. Bij een host ben je immers ook afhankelijk van de de snelheid van de host, de drukte op de server, verbinding met de host, etc.
 
Ik denk dat je ergens een data loop maakt, je voert namelijk behoorlijk wat queries uit... Verder speelt de snelheid van je server een rol natuurlijk...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan