Visualizzazione dei risultati da 1 a 8 su 8

Discussione: [php] while

  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [php] while

    Posso dire al php di leggere una delle due istruzioni all'interno di un while finchè questa non è verificata?

    Cioè io ho un while con all'interno un print e un if
    Codice PHP:
        while ($riga mysql_fetch_array($risp)) {
            if (
    $riga[a] == "0000-00-00"$riga[a] = "<undefined>";
            print 
    "xxxx";
        } 
    Vorrei che il print me lo facesse sempre, e lo leggesse sempre finchè la condizione del while non è verificata, ma l'if soltanto quando trova il record $riga[a] == "0000-00-00", dopodicchè non deve leggerlo più...

    non so se sono riuscito a spiegarmi... :master:
    devo fare un while dentro un while?
    わさび

  2. #2
    Mi pare che cosi' come lo hai presentato faccia esattamente quello che chiedi. Perche', non va?


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    Mi pare che cosi' come lo hai presentato faccia esattamente quello che chiedi. Perche', non va?

    perchè se il while lo deve ripetere per 1200 record,
    leggerà l'istruzione if 0000-00-00 1200 volte,
    mentre invece quel caso è verificato una sola volta...
    わさび

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    si, mentre l'ho detto l'ho fatto =_='

    è bastato mettere un while dentro un while
    e ho testato il tutto mettendo un print dentro ogniuno dei while, e così ho verificato che il secondo while lo legge solo una volta

    grazie lo stesso per l'aiuto
    わさび

  5. #5
    Originariamente inviato da Trinità76
    perchè se il while lo deve ripetere per 1200 record,
    leggerà l'istruzione if 0000-00-00 1200 volte,
    mentre invece quel caso è verificato una sola volta...
    Intendi dire che di date nulle ne hai una sola? o che ti interessa solo la prima data nulla e non le altre successive?

    In ogni caso se inserisci un if, questo andra' valutato tutte le 1200 volte. Anzi qualunque struttura di controllo tu metta dovra' essere valutata.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da piero.mac
    Intendi dire che di date nulle ne hai una sola? o che ti interessa solo la prima data nulla e non le altre successive?

    In ogni caso se inserisci un if, questo andra' valutato tutte le 1200 volte. Anzi qualunque struttura di controllo tu metta dovra' essere valutata.
    intendo dire che il print lo deve leggere e scrivere sempre l'altro if all'interno del while è verificato una sola volta quindi dovevo alleggerire un po' l'esecuzione dello script...

    io credo che inserendo un while dentro un while,
    il secondo while (quello interno) venga valutato finchè non è verificato, sbaglio?
    わさび

  7. #7
    Originariamente inviato da Trinità76
    intendo dire che il print lo deve leggere e scrivere sempre l'altro if all'interno del while è verificato una sola volta quindi dovevo alleggerire un po' l'esecuzione dello script...

    io credo che inserendo un while dentro un while,
    il secondo while (quello interno) venga valutato finchè non è verificato, sbaglio?
    Bisognerebbe vedere ccome lo hai impostato... per esempio:
    Codice PHP:
    while ($riga mysql_fetch_array($risp)) {

            if (
    $riga[a] == "0000-00-00") {
                
    $riga[a] = "<undefined>";
                print 
    "xxxx";
                while (
    $riga mysql_fetch_array($risp)) {
                   print 
    "xxxx"
                   } 
    // fine 2° while
             
    //fine if
       
    print "xxxx";
    // fine I° while 
    In questo modo il primo while stampa fino a che non trova una data nulla, a questo punto continua il while annidato fino alla fine del result set. Quando trovera mysql_fetch_array false, torna al primo while che trovera' false pure lui ed uscira'....

    Pero' deve essere chiaro che la data nulla che viene convertita sara' solo la prima che trova. Diverso sarebbe se tu volessi semplicemente "saltare" le sucessive date nulle. Non e' molto chiaro ne' quello che vuoi fare e ne' il tipo di dati che vai a trovare.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Grazie per l'aiuto piero.mac

    era esattamente quello che mi serviva
    わさび

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.