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

    MySql Conteggio utenti per provincia

    Salve

    in un menù a tendina elenco per ogni provincia il numero di utenti registrati.
    Per ottenere questo ho preparato un primo ciclo (PHP) che legge in sequenza la tabella province e ad ogni lettura utilizzo una seconda query per contare gli utenti residenti nella provincia appena letta.

    Con i risultati delle 2 query preparo la clausola Option con provincia e n. utenti.

    Il metodo funziona... quello che mi chiedo è se il metodo puo essere ottimizzato.

    In pratica ciclo 105 volte sulla prima query (una per provincia) e per ogni provincia eseguo altre 105 query per ricavare il numero di utenti (che potrebbe essere 0, la provincia deve essere riportata comunque) per un totale di 210 query.

    Presumo che il metodo possa essere migliorato.

    Ciclo Province
    - Conteggio Utenti
    - Option Provincia [n. utenti]
    Fine Ciclo Province

    Grazie per ogni eventuale suggerimento

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    probabilmente puoi fare una query unica che seleziona provincia e utenti registrati ... ma non hai postato codice ...

  3. #3
    Quote Originariamente inviata da marino51 Visualizza il messaggio
    probabilmente puoi fare una query unica che seleziona provincia e utenti registrati ... ma non hai postato codice ...
    codice:
                    $sql = "SELECT * FROM 50_province order by provincia";
                    $dati = mysql_query($sql);
                    $numero_righe = mysql_num_rows($dati);
                    for ($i=0;$i<$numero_righe;$i++)
                       {
                        $array = mysql_fetch_array($dati);
                        $targa = $array["targa"];
                        $provincia = $array["provincia"];
                        if (strtolower($targa) == strtolower($i_provincia))
                            {$sel = "selected";}
                        else
                            {$sel = "";}
                        $prv=ucfirst($provincia);
                        // conteggio esperienze/progetti
                        $sql = "select provincia from 60_utenti";
                        $sql .= " where provincia = '$targa'";
                        $dati_esp = mysql_query($sql);
                        $n_righe = mysql_num_rows($dati_esp);
                        $n_prov = " [".$n_righe."]";
                        echo "<option value=\"$targa\" $sel>$prv$n_prov</option>";
                       }

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    codice:
    SELECT 
    *, 
    (
    SELECT count(*)
    FROM 60_utenti
    WHERE provincia = 50_province.targa
    ) as n_righe
    FROM 50_province 
    ORDER BY provincia

  5. #5

  6. #6
    select provincia, count(*) FROM province p LEFT JOIN utenti U ON p.id=u.idprovincia

    sistema i nomi dei campi

  7. #7
    Quote Originariamente inviata da optime Visualizza il messaggio
    select provincia, count(*) FROM province p LEFT JOIN utenti U ON p.id=u.idprovincia

    sistema i nomi dei campi
    Ciao

    ringrazio anche te per la soluzione proposta (sicuramente funzionante) ma il suggerimento di marino51 è già operativo.

    La userò e testerò la prossima volta...

Tag per questa discussione

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.