• User

    Recuperare casistica dati da MySql

    Buongiorno GTiani, oggi sono alle prese con un CMS che sto progettando e ho un problema che non so come risolvere❌x:x
    Ho una tabella contenente le anagrafiche dei clienti, una cosa molto standard. Una delle colonne presenti è quella della provincia (RM, MI, TO, MB, etcc). Quello che avrei bisogno di fare è ottenere delle variabili che mi contengano l'informazione del numero di clienti associati ad ognuna delle province. Il tutto, però, senza eseguire una query per ogni provincia italiana, anche perchè non ho dei clienti per ogni provincia. Quindi lo script dovrebbe essere in grado di capire da solo che quando trova RM la seconda volta, al posto di creare una nuova variabile, deve aumentare di uno la variabile RM già creata in occasione del primo riscontro.
    Spero di non essere stato troppo contorto.
    ES:
    MB = 234
    TO = 1715
    RM = 52
    etcc..

    Il tutto mi serve perchè utilizzerò tali variabili per mostrare tramite un Google Chart Pie la suddivisione del portafoglio clienti per provincia.
    Grazie del vostro aiuto!
    F


  • User Attivo

    Non l'ho provata, ma guardando il manuale potrebbe funzionare così.

    
    SELECT provincia, COUNT(provincia) 'Somma' FROM tabella group by provincia
    
    

  • User

    Ciao Oslino, ho testato il tuo suggerimento (tramite il codice qui sotto riportato) e funziona perfettamente. Restituisce l'elenco di tutte e solo le province, una volta sola! Grazie mille! 🙂
    Ora tuttavia avrei la necessità di ottenere anche l'informazione seguente: per ognuna di quelle province, quanti record ho nel db?
    Quindi dovrei andare ad interrogare il db con i risultati. La domanda che mi viene è: eseguire una query nel ciclo while potrebbe essere una soluzione intelligente, oppure no?

    $sql_gt = mysql_query("SELECT provincia, COUNT(provincia) 'Somma' FROM clienti group by provincia");
    if (!$sql_gt) {
        echo "ERRORE NELLA QUERY GT: <br>".mysql_error();
    } else {
        echo "SQL GT: ".$sql_gt;
        $num = mysql_num_rows ( $sql_gt ) ;
        $j = 0 ;            
        while ( $j < $num )        {
              $provincia = mysql_result ( $sql_gt, $j, 'provincia' ) ;
              echo $provincia."<br>";
              $j++;
        }    
    }
    ?>
    
    

    Query eventuale da eseguire nel ciclo while (Esempio sulla provincia di Monza e Brianza):

    $sql_mb = mysql_query ("SELECT * FROM clienti WHERE provincia='MB'");
    if(! $sql_mb )    {
        die('Non ho trovato dati: <br />' . mysql_error());
    }
    $mb = mysql_num_rows ( $sql_mb ) ;
    
    
    

  • User Attivo

    O non ho capito io la tua domanda o non hai capito tu la query.
    La query fa già quello che chiedi

    [PHP]$sql_gt = mysql_query("SELECT provincia, COUNT(provincia) 'Somma' FROM clienti GROUP BY provincia");

    while ($row = mysql_fetch_array($sql_gt)){
          echo $row['provincia'] . ' = ' . $row['Somma'] ."<br>";
    }[/PHP]

  • User

    Non avevo capito io la query:bho:. Ho riletto: confermo. Fa esattamente quello che serve a me! Grazie mille per la pazienza e l'aiuto Oslino!:smile5: