Visualizzazione dei risultati da 1 a 10 su 10

Discussione: exit() che non esce

  1. #1

    exit() che non esce

    Ho un cicli while con dentro un if. Se l'if risulta vero lo script dovrebbe terminare per mezzo di una bella chiamata alla funzione exit(). La exit in questione dovrebbe impedire l'esecuzione di un successivo ciclo while. Fatto sta che pur risultando vera la condizione if, il secondo ciclo while viene eseguito ugualmente.
    Vi posto uno schema del codice.

    while (ecc...) {
    if ($pinco==pallino) exit();
    }

    while (ecc...) {
    ...
    }

    Insomma, perchè pur essendo vera la condizinoe mi viene eseguito al il secondo ciclo while? Non dovrebbe terminare definitivamente lo script?

    Grazie a tutti


  2. #2
    beh, si! exit termina di fatto l'esecuzione dello script! quindi se non viene terminata significa che la tua condizione non è verificata.

    prova per curiosità a fare:

    codice:
    if (tuacondizione)  exit( "Condizione verificata" );
    vedi se ti stampa un messaggio, altrimenti non entra neanche nell'if.

    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  3. #3
    Si, stampa il testo dentro ad exit, quindi lo esegue. Poi però stampa anche l'output del cilo while ...

  4. #4
    mi sembra alquanto improbabile che stampi il contenuto dell'exit ma che poi continui con l'esecuzione stampandoti anche l'output del ciclo :master:

    sicuro che l'output che vedi non sia output che viene generato prima che si verifichi la condizione d'uscita?prova a postare il codice del ciclo.
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Sono sicurissimo. Fa esattamente quello che ho detto. E' parso molto strano pure a me. Qualcuno ha mai avuto un problema simile al mio? Com'è che sta exit non esce?

  6. #6
    Vi posto il codice:

    $res[$i]=odbc_exec($dbconn,$q[$i]);
    $resa[$i]=odbc_exec($dbconn,$q[$i]);

    while($row = odbc_fetch_array($res[$i])){
    if($_POST[text.$i] != "" AND $_POST[text.$i]>($row[QTFTP1]-$row [QTIMP1])) exit("ERRORE QUANTITA'");
    }

    while($row = odbc_fetch_array($resa[$i])){
    if($_POST[text.$i] != "" AND $_POST[text.$i]<=($row[QTFTP1]-$row[QTIMP1])){
    echo "<tr><td>".$_POST[text.$i]." di </td><td>".$row[DSARMA]."</td><td>".$row[CDMGP1]."</td><td>".$row[CDARP1]."</td><td>".$row[SPESP1]."</td><td>".$row[LUNGP1]."</td><td>".$row[LARGP1]."</td><td>".$row[ASSOP1]."</td></tr>\n"; $conta="a";
    }
    }

    In pratica esce sia la scritta "ERRORE QUANTITA'" che la tabella successiva. Non dovrebbe accadere no? E allora che accade?

  7. #7
    e se al posto di exit usi il die?
    non dovrebbe cambiare nulla perché comunque die() è un alias di exit()

    continua comunque a sembrarmi strano!non puoi postare il codice?te lo chiedo perché così è impossibile aiutarti!

    fammi capire una cosa però; tu hai un codice praticamente così:

    Codice PHP:
    for ($i 0$i 50$i += 1){
        print 
    $i."
    "
    ;
        if (
    $i == 25)    exit("Il numero è uguale a 25");

    e come output ottieni i numeri fino a 25, la scritta Il numero è uguale a 25 e poi di nuovo i numeri fino a 50? :master:

    prova quel semplicissimo codice [ che funziona ]!se ti funziona vuol dire che c'è un errore nel tuo codice.
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  8. #8
    non avevo letto la tua ultima risposta con il codice! sorry
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    boh! pensavo che magari avessi un ciclo dentro l'altro e magari sovrascrivessi una variabile o cosa del genere! ma così non mi sembra di vedere errori ma non so come funzionano i costrutti ODBC.

    non so a cosa possa esser dovuto! mi dispiace
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  10. #10
    Grazie lo stesso. Cercherò un'altra soluzione.
    Ciao

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.