login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Maximum execution error

Offline Corno - 06/06/2008 17:16 (laatste wijziging 06/06/2008 18:56)
Avatar van CornoNieuw lid Beste,

Wanner ik het onderstaande script uitvoer krijg ik de error:

Fatal error: Maximum execution time of 30 seconds exceeded in /storage/mijndomein/users/071540/public/sites/www.wegaanweg.nl/test/vind-vakantie.php on line 50 (in de selectie op deze website 15)


Plaatscode: 10058

Probleem doed zich allen voor als $maand 8 of 9 is. de overige doen het probleemloos.

Heeft iemand een idee hoe ik het op kan lossen?

7 antwoorden

Gesponsorde links
Offline Koen - 06/06/2008 17:38 (laatste wijziging 06/06/2008 17:40)
Avatar van Koen PHP expert
Citaat:
nerds

Spreek voor jezelf 
Probeer eens om die tijd wat te verlengen?
  1. ini_set('max_execution_time', 60);


Succes


PS: Lappen code moet je op PlaatsCode.be zetten 
Offline Corno - 06/06/2008 18:41 (laatste wijziging 06/06/2008 18:57)
Avatar van Corno Nieuw lid
  1. ini_set('max_execution_time', 60);


werkt niet... De overige maanden geven direct resultaat. Alleen 8 en 9 niet... Zijn er verder nog ideeën in de zaal?

En voor de gene die zich beledigd voelen met nerds, excuses! Maar zie het voortaan als een compliment 
Offline Stijn - 06/06/2008 18:55 (laatste wijziging 06/06/2008 18:58)
Avatar van Stijn PHP expert Hij komt in een oneindige lus terecht.

  1. if ($maand==01){
Dit is een octaal getal. $maand == "01" want $_POST is een array van strings.

Je doet ook niets met die $i, dus waarom execute je 52 keer hetzelfde. Als dit toch nut heeft, gebruik dan de for loop.
Offline Corno - 06/06/2008 19:03
Avatar van Corno Nieuw lid
stijn1989 schreef:
Hij komt in een oneindige lus terecht.


Nee toch?

  1. $i=1;
  2. //loop 52 weken door
  3. while($i <= 52 ) {
  4. //is startdatum gelijk aan $begin?
  5. if ($startdatum2008 -> format('Y-m')==$begin){
  6. if ($maand==01){
  7.  
  8. }elseif ($maand==02){
  9. }
  10. //niet gelijk aan $begin --> weer een week optellen
  11. }else{
  12. $startdatum2008 -> modify('+7 day');
  13. $i++;
  14. }
  15. }

Die is toch niet oneindig, en hoe kan het dan dat hij maand 10,11 en 12 wel weer pakt?
Offline Joost - 06/06/2008 20:02 (laatste wijziging 06/06/2008 20:02)
Avatar van Joost PHP expert Als 10, 11 en 12 wel werken, denk ik dat PHP vindt dat 1 ongelijk is aan 01.

oftewel, $maand==01 moet dan $maand==1 worden.
Offline memar - 07/06/2008 00:29
Avatar van memar Nieuw lid Zorg dat je er zeker van bent dat $maand een integer is en doe wat medieval zegt: $maand==1. Want het kan wel zijn dat 01 als string wordt beschouwd.
mvg memar
Offline Corno - 07/06/2008 20:04
Avatar van Corno Nieuw lid Allemaal hartelijk dank!

Het is gelukt. Het probleem zat het waarschijnlijk toch in de loop. Hoewel ik het niet snap dat 01 t/m 07 en 10 t/m 12 het wel deed. Ik heb het als het volgt opgelost:

Plaatscode

De loop er uitgehaald. de code is gelijk efficiënter. deze manier had ik in eerste instantie niet gezien.

Nogmaals bedankt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.222s