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

    Calcolo delle percentuali

    Ciao a tutti devo calcolare le percentuali di visite su un dominio.

    Per eseguire tale operazione ho a mia disposizione il numero di visite che viene aggiornato ogni volta che una persona visita la pagina in questione.
    E il numero di articoli con almeno una visita, il codice utilizzato è il seguente

    Codice PHP:
    SELECT count(visite) as tot_visite FROM xxx WHERE visite!= 0


    $sql 
    "SELECT * FROM xxx WHERE visite!= 0 ORDER BY visite DESC LIMIT $first$x_pag ";
    $rs mysql_query($sql ) or die(mysql_error());
    $nr mysql_num_rows($rs);
    if (
    $nr != 0){
     for(
    $x 0$x $nr$x++){
           
    $row mysql_fetch_assoc($rs);
          echo 
    "<div style='width: 100%;'>";
            
    $titolo $row['titolo'];
            
    $visite $row['visite'];
            
    $width_perc ceil((100*$visite/$tot_visite));
    //tot_visite viene presa dalla prima query

    echo "$titolo <div style='width: 100%;height: 20px'>
    <div style='background: #9eca80;width: 
    $width_perc%!important;height: 18px;width: 100%;padding-top: 3px;color: #FFF;text-align: center;border: solid 1px #CCC'>
    $width_perc %

    </div>
    "
    ;

            } 
    Ora in questo momento vedo le prime sbarre di visita con un bel 144% e questo non dovrebbe essere giusto

    Per questo chiedo a voi e vi chiedo cosa sto sbagliando ??

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    accanto alla percentuale, stampa a video anche $visite e $tot_visite

  3. #3
    Ho stampato le variabile in questo momento il totale è 102 mentre le visite sono quelle del db

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    metti...

    Codice PHP:
    ...
    $width_perc ceil((100*$visite/$tot_visite)); 

    // AGGIUNGI QUESTO:
    print "CONTROLLO:
    "
    ;
    print 
    "VISITE = $visite
    "
    ;
    print 
    "TOTALE = $tot_visite
    "
    ;
    print 
    "Steps:
    "
    ;
    print (
    100*$visite)."
    "
    ;
    print (
    100*$visite/$tot_visite)."
    "
    ;
    print 
    ceil((100*$visite/$tot_visite))."
    "
    ;
    print 
    "

    "
    ;
    ... 
    e posta il risultato che vediamo...

  5. #5
    VISITE = 146
    TOTALE = 102
    Steps:
    14600
    143.137254902
    144


    CONTROLLO:
    VISITE = 126
    TOTALE = 102
    Steps:
    12600
    123.529411765
    124

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Allooora... il problema è che tot_visite non è il totale delle visite, ma il numero di record, quindi prova a cambiare la SELECT iniziale facendo un bel SUM di tutte le visite...

  7. #7
    ok ora il totale è 1262 e le percentuali sono scese completamente il più alto è un 12% ... è giusto?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    sembra di sì...

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.