Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Variabili nel ciclo while non si salvano

    Salve, ho dei cicli while come si può vedere nel codice seguente.
    Non capisco perchè le variabili $i e $j non crescono di valore ma rimangono sempre a valore 0. In particolare, se eseguo un echo in alcuni posti le variabili vedo che passano al valore 1, in altre parti più sotto tornano a 0 e non capisco per quale strano motivo.

    $query="SELECT * FROM allenamento ORDER BY id";
    $allenamenti=mysql_query($query, $connessione);
    $numero=mysql_numrows($allenamenti);
    ?>

    <form name="selezione anno" action="mostraallenamenti2.php" method="POST">
    <fieldset>
    <legend>Selezione anno</legend>


    Selezionare l'anno di cui si vuole visionare gli allenamenti: </p>
    <?
    $i=0;
    while ($numero>$i) {
    $anno=mysql_result($allenamenti,$i,"anno");
    echo $anno;
    $j=0;
    while ($j<=$i){
    $cond=false;
    if ($anno!=$annivisionati[$j]){
    $cond=true;
    $annivisionati[$i]=$anno;
    }
    echo $j;
    $j++;
    }
    echo $i;
    $i++;
    ?>
    <select name="anno" >
    <?
    if ($cond) {?>
    <option value="<?echo $anno?>"><?echo $anno?> </option> <?
    }
    echo $i;
    $i++;
    }
    ?>
    </select>
    <input type="reset" value="Cancella">
    <input type="submit" value="Avanti">


    </fieldset>
    </form>

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Ho eliminato il superfluo dal tuo codice ed ho ottenuto questo settando $numero a un valore di test... confermi vero?
    codice:
    <?php
            $numero=10;
            $i = 0;
            while ($numero > $i) {
                $j = 0;
                while ($j <= $i) {
                    echo "\$J=$j;";
                    $j++;
                }
                echo "\$I=$i;";
                $i++;
                echo "\$I=$i;";
                $i++;
            }
     ?>
    Il risultato è stato
    codice:
    $J=0;
    $I=0;
    $I=1;
    
    $J=0;
    $J=1;
    $J=2;
    $I=2;
    $I=3;
    
    $J=0;
    $J=1;
    $J=2;
    $J=3;
    $J=4;
    $I=4;
    $I=5;
    
    $J=0;
    $J=1;
    $J=2;
    $J=3;
    $J=4;
    $J=5;
    $J=6;
    $I=6;
    $I=7;
    Riesci a vedre il ciclo ora?

  3. #3
    Provo a spiegarmi meglio!
    Il problema è il seguente: se visualizzo sullo schermo la variabile $i mettendo un echo prima della riga in cui c'è <select name="anno" > mi visualizza il valore corretto di $i.
    Se lo metto dopo, non stampa niente, la variabile $i scompare, e non capisco perchè. E quindi il mio ciclo non funziona perchè la variabile $i non funge più da contatore facendo così.
    E non capisco perchè succede questo.

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Originariamente inviato da Begins
    Provo a spiegarmi meglio!
    Il problema è il seguente: se visualizzo sullo schermo la variabile $i mettendo un echo prima della riga in cui c'è <select name="anno" > mi visualizza il valore corretto di $i.
    Se lo metto dopo, non stampa niente, la variabile $i scompare, e non capisco perchè. E quindi il mio ciclo non funziona perchè la variabile $i non funge più da contatore facendo così.
    E non capisco perchè succede questo.
    Ora è più chiaro. Il motivo della sparizione è che hai piazzato la echo all'interno dei tag <select></select> i quali visualizzano qualcosa solo se lo definisci nel tag option. In pratica hai un html prodotto del tipo
    <select name="anno" >
    <option value="2008">2008 </option>
    qui il valore di $i
    <option value="2009">2009 </option>
    qui il valore di $i
    <option value="2010">2010 </option>
    qui il valore di $i
    </select>

    ovviamente i valori di $i non vengono visualizzati dal browser ma solo quelli relativi alle option. Hai un HTML mal formattato!

    Era questo?

  5. #5
    ah ecco perchè non mi visualizzava nulla! Non sapevo di questo dettaglio!!
    Quindi anche se non mi mostra sul browser, la variabile non è scomparsa, c'è ma il problema sta nel modo con qui tentavo di visualizzarla?
    Che storie.. Non si finisce mai di imparare!!!!

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.