Hej Alle sammen
Og godt nytår
Jeg har er problem, jeg har lavet en funktion som vælger et tilfældigt billede hvor jeg bruger php funktionen mt_rand().
Problemet er så at jeg nogle gange for fejlen:
Fatal error: Maximum execution time of 30 seconds exceeded in /***/***/***/***/***/***/**.php on line 34
På den linie er min kode med mt_rand() og jeg for samme fejl andre steder på siden.
Jeg ved at man kan ændre execution time på ens Apache Server men det er ikke af interesse.
Jeg vil derfor gerne vide om man kan bruge en anden funktion eller kan undgå at denne fejl opstår?
Lige koden for filen fejlen opstår i:
<?php
# Henter antal rækker i tabellen billedmapper,
# Udføre queryen og tæller.
opret_forbindelse();
$e = mysql_query("SELECT * FROM billedmapper);
$f = mysql_num_rows($e);
luk_forbindelse();
# Funktion til at hente et tilfældigt nummer mellem 1 og antal rækker
$picmappe = mt_rand(1, $f);
# SQL query til at hente mappe stien samt mappe navnet,
# Queryen udførest og ligges i et array
$sql = "SELECT * FROM billedmapper WHERE mapnr='".$picmappe."'";
opret_forbindelse();
$g = mysql_query("SELECT * FROM billedmapper WHERE mapnr='".$picmappe."'");
$h = mysql_fetch_array($g);
luk_forbindelse();
# Finder et tilfældigt billede og udskriver det
$sti = opendir("images/galleri/".$h[sti]."/");
$all = array();
while(false !== ($file = readdir($sti))) {
if($file != '.' && $file != '..' && $file != "Thumbs.db") {
$filename[$piccount] = $file;
$piccount++;
}
}
$picid = mt_rand(1, $piccount);
if(empty($filename[$picid])) {
while(empty($filename[$picid])) {
$picid = mt_rand(1, $piccount);
}
}
# Indstiller størrelsen af billedet
list($width, $height) = getimagesize("images/galleri/".$h[sti]."/".$filename[$picid]);
$width1 = $width + 6;
$height1 = $height + 6;
# Udskriver billedet
?>
<div id='fpic' align="left"><a href="#"><img onClick="window.open('uses/visbilled.php?nr1=<?=$picid;?>&m=<?=$h[sti];?>', 'Preview', 'left=0, status=no'); return false;" src='uses/thumb.php?nr=<?=$filename[$picid];?>&s=<?=$h[sti];?>' border='1' id='forside_billed' title='<?=$h[navn]?>' alt='<?=$h[navn]?>'></a></div>
Fejlen opstår på linien:
$picid = mt_rand(1, $piccount);
I delen:
if(empty($filename[$picid])) {
while(empty($filename[$picid])) {
$picid = mt_rand(1, $piccount);
}
}
Håber nogen kan hjælpe