Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    5

    Problema con i confronti

    Ho un problema su cui sbatto la testa da ore.
    In un confronto tra il contenuto di una cella di un array bidimensionale e qualsiasi altra cosa mi da il seguente errore:
    "Fatal error: Maximum execution time of 30 seconds exceeded in /membri/miositoprovajj/Archivio_Fumetti.php on line 63"

    lo spezzone di codice dove da l'errore è questo:
    codice:
    
    
    Codice PHP:
    /////////altro codice/////////////// $string='<div class="post"><div class="postImg">[img]prova.png[/img]</div><div class="postInf"><h4>Titolo: '.$row["Titolo"].'</h4><h5>Numero: '.$row["Numero"].'</h5></div></div>';                         $post[0]=$string;                         $post[1]=substr($row["Titolo"],0,1);                         $postArray[$indice]=$post; //////////altro codice////////////////////// $postArray=$_SESSION["postArray"];                 echo '<div id="elenco_Alfabetico">                         <ul>';                                  $indice=0;//$_GET["indicePost"]-30;                 $inizio="A";                 $continua=0;                 $con=true;                 set_time_limit(120);                 for($x=0;$x<28;$x++){                     if($x==0){                         echo '[*]                                 Fumetti 0-9';                         while($continua==0){     ERRORE------------->if($postArray[$indice][1]===$con && $continua==0){                                 echo $postArray[$indice][0];                                 echo 'indice:'.$indice;                                 echo 'prova:'.$_GET["indicePost"];                                 echo 'dddddd'.$postArray[$indice+1][1];                                 if(($indice+1)>$_GET["indicePost"] || $postArray[$indice+1][1]==""){                                     $continua=1;                                     echo 'esce qui';                                 }//fine if                                 else{                                     echo 'indice:'.$indice.'---'.$continua;                                     $indice++;                                     echo 'indice:'.$indice.'---'.$continua;                                     echo $postArray[$indice][1];                                     echo $postArray[$indice][1]==1;                                 }//else                                                              }//fine if                         }//fine while $continua                         echo '';                 }//fine if numeri 
    tralasciando i commenti e i vari stamp di prova per capire dov'era l'errore,
    quella riga mi sta facendo impazzire!
    Se riusciste ad aiutarmi vi ringrazierò a vita

    Simone

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    5
    Ah,una precisazione..
    ora dovrebbe fare il confronto fra tipi..ma l'errore me lo da anche tra stringhe interi etc.

    per esempio
    codice:
    [PHP]
    if($postArray[$indice][1]=="1" && $continua==0){
    [PHP]
    oppure
    codice:
    [PHP]
    if($postArray[$indice][1]==1 && $continua==0){
    [PHP]

  3. #3
    Il for non serve e niente e $continua è sempre = 0 per cui il while cicla all'infinito.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    5
    no vabbè il for serve per la parte di codice che viene dopo, il $continua può andare ad 1 qui:
    [CODICE]
    Codice PHP:
    if(($indice+1)>$_GET["indicePost"] || $postArray[$indice+1][1]==""){ 
                                        
    $continua=1
                                        echo 
    'esce qui'
    [/CODICE]

    o no?

  5. #5
    Certo, ma evidentemente non lo fa dato che lo script va in timeout.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    5
    sto continuando a fare prove, e da quanto ho capito si impalla quando il confronto non da esito positivo..




    in pratica il primo giro lo fa, perchè l'istruzione da vero..


    $postArray[$indice][1] vale "1"
    l'istruzione è:
    $postArray[$indice][1]=="1"
    quindi nell'if c'è true..


    quello successivo, il confronto invece non va a buon fine
    $postArray[$indice][1] vale "L"
    l'istruzione è sempre $postArray[$indice][1]=="1"
    e si blocca tutto..

  7. #7
    Per cui non essendo mai vera la condizione:

    Codice PHP:
    ...
    if(
    $postArray[$indice][1]===$con && $continua==0){
    ... 
    il while cicla all'infinito.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    5
    Non mi sono spiegato bene io, quella l'avevo cambiata nel corso delle prove.
    Comunque ho risolto..
    -.- non avevo messo l'else dopo quell'if..
    ora l'ho messo e non si impalla più..
    grazie mille lo stesso!buona serata

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.