Avatar billede 4u2x Nybegynder
23. marts 2008 - 15:00 Der er 5 kommentarer og
1 løsning

Maximum execution reached

På grund af for lang execution i mit script ser det ud til at jeg er nødt til at redefinere eller kode det om, så det er nemmere at sluge.
Hvordan er jeg i tvivl om, så håber på at der måske var nogen herinde der har et forslag?


#### Koden ##

while($bquickmenurow = mysql_fetch_array($bquery))
{
    $bqueryantal += $bquickmenurow["tilbage"];
}

if($bqueryantal >= $depot_tilbage)
{
    while($depot_tilbage > 0)
    {
        while($aquickmenurow = mysql_fetch_array($bquery))
        {
            $leftid = $aquickmenurow["transid"];
            $leftantal = $aquickmenurow["tilbage"];

            if($leftantal < $depot_tilbage)
            {
                mysql_query("UPDATE transaktion SET tilbage = '0' WHERE transid = $leftid") or die (mysql_error());
                $depot_tilbage -= $leftantal;
            }
            if($leftantal == $depot_tilbage)
            {
                mysql_query("UPDATE transaktion SET tilbage = '0' WHERE transid = $leftid") or die (mysql_error());
                $depot_tilbage = 0;
            }
            if(($leftantal > $depot_tilbage) && ($depot_tilbage != 0))
            {
                mysql_query("UPDATE transaktion SET tilbage = tilbage-$depot_tilbage WHERE transid = $leftid") or die (mysql_error());
                $depot_tilbage = 0;
            }
        }
        $handelsnota_tjek_ok = 1;
    }
}
Avatar billede dkfire Nybegynder
23. marts 2008 - 15:22 #1
Du har en stor fejl, som får din kode til at kører i en uendelig løkke.

while($depot_tilbage > 0)
{
    while($aquickmenurow = mysql_fetch_array($bquery))
    {
        //Noget kode
    }
}

Du ændre aldrig $depot_tilbage i den yderste while, så den while vil, måske aldrig, løbe  færdig. Det sker bl.a. i og med at du har løbet din mysql resultater igennem en gang, derved vil din inderste while-løkke aldrig kører.
Det kan også ske hvis din $depot_tilbage aldrig bliver sat til 0 mens du løber dine mysql resultater igennem.
Avatar billede dkfire Nybegynder
23. marts 2008 - 15:24 #2
Prøv at lave et tjek på om du overhoved kommer ind i den inderste while-løkke.
Avatar billede 4u2x Nybegynder
23. marts 2008 - 18:20 #3
fjernede
while($depot_tilbage > 0)
{
}

den var mere ment som dobbeltjek, men nu virker det. lig et svar, tak :)
Avatar billede dkfire Nybegynder
23. marts 2008 - 18:55 #4
Et svar ;-)
Avatar billede 4u2x Nybegynder
23. marts 2008 - 19:00 #5
har lige et lille spm, som jeg håber du vil svare på...

$bqueryantal = 575;
$depot_tilbage = 100;

if($bqueryantal >= $depot_tilbage)
{
  echo "ja";
}


hvordan kan det være at den ikke bliver udskrevet? :-/
Avatar billede 4u2x Nybegynder
23. marts 2008 - 19:28 #6
nevermind... en anden fejl der gjorde udslaget... ikke sådan når man har ferie
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester