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

    mysql, avere la percentuale in base ai valori dei campi

    in pratica ho 1 campo che può essere valorizzato come o 0 o 1 o 2 o 3..


    c'è un modo per avere la percenutale in base al numero di righe dei valori 1,2,3 ( escluso lo zero quindi ) ?


    spero di essermi spiegato

    ( esempio pratico: vorrei che uscisse il valore 1 è presente xx% il valore 2 è presente yy% ecc )

  2. #2
    qualcosa tipo
    SELECT (COUNT(num_fields) * 100) / (SELECT COUNT(*) FROM table) FROM table WHERE num_fields > 0 ORDER BY num_fields GROUP BY num_fields
    :master:

    il succo è questo:
    P = (TOT_N * 100) / TOT_R
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,922
    1) puoi usare le subquery?

    2) non ho capito se lo 0 deve essere escluso solo in fase di visualizzazione oppure se il conteggio delle percentuali deve essere fatto sul totale dei record presenti escludendo quelli per i quali il campo è uguale a 0.

    edit. troppo lento.

  4. #4
    sarà molto più lungo e meno ottimizziato.. ma ho fatto questa funzioncina

    codice:
    		function get_information_for_graph( $field ) {
    		
    			$query = mysql_query("SELECT {$field},COUNT(*) as count FROM feedback WHERE aid = {$extern_var} AND {$field} > 0 GROUP BY {$field}");
    			
    			while($row=mysql_fetch_assoc($query)) {
    				@$array['count']+=$row['count'];
    				$array[$field][$row[$field]]=$row['count'];
    				
    			}
    			
    			foreach($array[ $field ] as $k=>$v) {
    				$return[ $field ][ $k ] = round( (  $v * 100 ) / $array['count'] );
    			}
    			
    			return $return;
    			
    		}
    basterà chiamare la funzione con il nome del campo e lei ritornerà un array con le chiavi rappresentate dai valori del campo e con assegnato il valore della percentuale

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.