Visualizzazione dei risultati da 1 a 6 su 6

Discussione: controllo variabile

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    243

    controllo variabile

    Salve a tutti !!

    ho il seguente script :

    <?
    while($riga = mysql_fetch_array($ris))
    {
    $ID = $riga['id'] ;
    $Nome = $riga['nome'] ;
    }

    print($Nome);

    ?>

    Perche' se non entro nel while ottengo un errore !
    (Suppongo perche la variamile $Nome non è inizializzata.)
    Come posso risolvere.

    Grazie mille !

  2. #2
    Utente di HTML.it L'avatar di RokStar
    Registrato dal
    Dec 2001
    Messaggi
    937
    Ci sono due strade (e l'errore non è dovuto da $Nome).

    O controlli se la query dà risultati utilizzando
    Codice PHP:
    if (@mysql_num_rows($ris) > 0) {
        
    // da risultati, faccio il while
        /* Qui facciamo finta che ci sia il while
        e che finisca
        qui */
    } else {
        
    //gestisci l'errore

    Altrimenti ti limiti a non far comparire l'errore di mysql_fetch_array usando
    Codice PHP:
    while ($riga = @mysql_fetch_array($ris)) { 
    Dipende se hai la necessità di gestire l'errore oppure se l'esecuzione del while ti è indifferente.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    243
    Il problema è che in questo ciclo estraggo dei valori che poi
    nella stessa pagina visualizzao in un form
    html(no generato da codice server).
    Le soluzioni ovviamente sono diverse.Io vorrei esclusere di mettere il form all'inteno del ciclo while.
    Quindi mi chiedevo la soluzione ottimale per gestire la cosa.
    Potrei per esempio prima del ciclo while inizializzare tutte le variabili a zero esempio :

    <?

    $nome=""

    while($riga = mysql_fetch_array($ris))
    {
    $id = $riga['id'] ;
    $nome = $riga['nome'] ;
    }

    ?>

    <input type='text' id='nome' value="<?=$nome?>" >


    Grazie per la risposta tempestiva.

  4. #4
    Utente di HTML.it L'avatar di RokStar
    Registrato dal
    Dec 2001
    Messaggi
    937
    Il messaggio di errore viene da mysql_fetch_array($ris);
    Se $ris non ha risultati la funzione mysql_fetch_array non può creare l'array dei risultati e ti rende il messaggio di errore, oltre ovviamente a non eseguire il while.
    Il simbolo @ davanti al nome della funzione (@mysql_fetch_array() ti consente di non mostrare il messaggio di errore.
    Se non hai attivi i notice nella configurazione di php.ini puoi anche non inizializzare una variabile e fare un echo ad una variabile inesistente, il risultato sarà come echo ""; vale a dire niente.
    Ad ogni modo è bene inizializzare le variabili.

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    243
    un ultima cosa.

    Ma secondo te conviene(aldilà del problema che ho)
    attivare o disattivare i notice ?

  6. #6
    Utente di HTML.it L'avatar di RokStar
    Registrato dal
    Dec 2001
    Messaggi
    937
    Personalmente uso:

    error_reporting = E_ALL & ~E_NOTICE

    che vuol dire che mostra tutti gli errori tranne i notice (ad esempio "La variabile x non è definita") che non costituiscono pericolo di blocchi dello script (di solito).

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