Visualizzazione dei risultati da 1 a 5 su 5

Discussione: While e mysql

  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719

    While e mysql

    Ciao a tutti,
    Vorrei capire meglio come funziona il while.
    So da sempre che il while esegue un blocco di codice ciclicamente fino a quando non viene soddisfatta l'espressione predefinita.
    Ora, il mio problema è che non capisco il suo comportamento in questo codice:

    Codice PHP:
    while ($row mysql_fetch_assoc($result)) {
       echo 
    $row["userid"];
       echo 
    $row["fullname"];
       echo 
    $row["userstatus"];

    Come espressione viene data una assegnazione, quindi ora $row è ora il risultato dell'array. Ma allora perché questa funzione mi da un comportamento simile ad un foreach?

    Grazie in anticipo,

    ____

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    mysql_fetch_assoc ad ogni ciclo restituisce una riga del risultato del result set $result e punta alla riga seguente, restituisce false quando non ci sono più righe da prendere.

    Dunque, supponi che la query ritorni 2 righe
    1) Pippo
    2) Pluto

    la prima volta che il while verifica la condizione, a $row[] viene assegnato il valore Pippo, che non è false, quindi il contenuto del while viene eseguito, si rivaluta la condizione, stavolta a $row[] viene assegnato Pluto, che ancora è diverso da false, quindi si riesegue il contenuto del while.
    La terza volta non ci sono più risultati da restituire, a $row viene assegnato false... e si esce dal ciclo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Ah, ora si spiega tutto
    Ma quindi posso usare gli uguali di assegnazione nei while considerandoli anche di uguaglianza, o ho capito male?
    Grazie,

  4. #4
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    stai capendo male

    se hai

    while ($i=$k+$n-3){
    ...
    }

    al momento della valutazione della condizione l'interprete risolve l'espressione a destra dell'uguale (supponiamo valga 50)

    while($i=50){
    ...
    }

    risolve l'assegnazione mettendo in $i il valore 50

    while($i){
    ...
    }

    ridolve $i

    while(50){
    ...
    }

    essendo diverso da zero procede con l'iterazione successiva. Alla valutazione della condizione successiva ripete il procedimento e valuta se rimanere nel ciclo o uscire.
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Ok ora ho capito giusto.
    Il while continua fino a quando l'espressione è false o zero.
    Grazie mille,

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 © 2026 vBulletin Solutions, Inc. All rights reserved.