Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043

    calcolo percentuale mi da errore

    quando calcolo la percentuale mi da errore però mi sembra tutto corretto, dove sbaglio?

    messaggio d'errore:
    Warning: Division by zero in /web/htdocs/www.sito.it/home/pann_contr_comune/include_case1_ins_sondaggi_risultato.php on line 159

    Codice PHP:
     <?
                        $query_risposta1 
    "SELECT e_sond_sondaggio.*, e_sond_risposte_ute.*    

                    FROM e_sond_sondaggio 
                    
                    INNER JOIN e_sond_risposte_ute
                    ON e_sond_risposte_ute.id_sond_sondaggio = e_sond_sondaggio.id_sond_sondaggio 
                    
                    WHERE e_sond_risposte_ute.id_sond_sondaggio = '" 
    $idsondsondaggio "' AND e_sond_risposte_ute.id_sond_risposte = '" $idsondrisposte "' ";
                        
    $result_risposta1 mysql_query($query_risposta1$conn) or die("errore " mysql_error());
                       
    $row_risposta1 mysql_num_rows($result_risposta1);
                      
                      
                      
                      
                        
    $query_risposta2 "SELECT e_sond_sondaggio.*, e_sond_risposte_ute.*    

                    FROM e_sond_sondaggio 
                    
                    INNER JOIN e_sond_risposte_ute
                    ON e_sond_risposte_ute.id_sond_sondaggio = e_sond_sondaggio.id_sond_sondaggio 
                    
                    WHERE e_sond_risposte_ute.id_sond_sondaggio = '" 
    $idsondsondaggio "' ";
                        
    $result_risposta2 mysql_query($query_risposta2$conn) or die("errore " mysql_error());
                       
    $row_risposta2 mysql_num_rows($result_risposta2);
                       
                       
    $row_risposta_perc = ($row_risposta1 $query_risposta2 100);
                            
    ?>  




    PERC = <?= strtoupper($row_risposta_perc?>

  2. #2
    Mi sembra piuttosto chiaro l'errore:

    codice:
    Warning: Division by zero in /web/htdocs/www.sito.it/home/pann_contr_comune/include_case1_ins_sondaggi_risultato.php on line 159
    Alla riga 159 effettui una divizione per zero.
    Suppongo che la riga in questione sia questa:

    Codice PHP:
    ...
    $row_risposta_perc = ($row_risposta1 $query_risposta2 100);
    ... 
    Se ne deduce che $query_risposta2 = 0
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    e quindi che posso fare per ovviare a questo problema?

  4. #4
    Originariamente inviato da prinzart
    e quindi che posso fare per ovviare a questo problema?
    Scusa, ma che domanda è? Vedi un po' tu! Sicuramente non puoi effettuare una divisione per zero!
    Inoltre mi accorgo ora che c'è sicuramente un baco nel codice da te postato. $query_risposta2 è la stringa contenente la query, probabilmente volevi utilizzare $row_risposta2.
    In ogni caso devi essere sicuro che la query restituisca almeno una riga altrimenti becchi l'eccezione se non effettui alcun controllo prima della divisione.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    ho aggiunto questo:

    Codice PHP:
       if ($row_risposta1 == 0) {

    $row_risposta_perc 0;
    }
    else
    {
                       
                       
    $row_risposta_perc = ($row_risposta1 100 $query_risposta2);
                       } 
    e dove la percentuale è 0% mi stampa il risultato corretto senza darmi errore, invece dove la percentuale è maggiore di 0% continua a darmi lo stesso errore di prima.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Originariamente inviato da satifal
    Inoltre mi accorgo ora che c'è sicuramente un baco nel codice da te postato. $query_risposta2 è la stringa contenente la query, probabilmente volevi utilizzare $row_risposta2.
    AAAahhh ecco dov'era il problema, eee la stanchezza gioca dei brutti scherzi

    grazie ciao


  7. #7
    In ogni caso devi controllare che $row_risposta2 sia maggiore di zero prima di effettuare il calcolo della percentuale.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    2,043
    Fatto, grazie

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.