Visualizzazione risultati 1 fino 8 di 8

Discussione: [mysql] contare i tipi di record

  1. #1
    Guest

    Predefinito [mysql] contare i tipi di record

    eccomi nuovamente qua, a chiedere aiuto
    ho una tabella così strutturata

    id | nick | regione

    Volevo creare una pagina per le statistiche, contando i tipi di record per il campo regione
    mi spiego meglio: nella pagina statistiche volevo mettere

    Abruzzo >>> $totale_utenti_per_Abruzzo
    Basilicata >>> $totale_utenti_perBasilicata
    .....

    ho provato questo
    $boh = mysql_query("SELECT regione FROM user WHERE regione='Sardegna') or die("Query non valida: " . mysql_error());
    $result = mysql_num_rows($boh);

    ma nn va :( .... ho provato a utilizzare anche il COUNT, ma nn ho ben capito la sintassi...
    mi sto scervellando, nn trovo la query che devo utilizzare

    grazie a tutti per l'aiuto ...

    e scusate se vi rompo OLD
    Ultima modifica di djgaggio : 19-11-2004 alle ore 14.40.45

  2. #2
    L'avatar di sliver
    sliver non è connesso Utente storico
    Data registrazione
    09-03-2001
    Messaggi
    505

    Predefinito

    $boh = mysql_query("SELECT * FROM user WHERE regione='Sardegna') or die("Query non valida: " .
    se questa query è giusta questo dovrebbe funzionare:

    $count = count($boh);
    echo $count;
    aru culu

  3. #3
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    oppure
    $boh = mysql_query("SELECT COUNT(a1) FROM users");
    $user = mysql_feact_array($result, 0);

    echo"$user";
    dove a1= campo da contare ( meglio non l'ID )
    Ultima modifica di makpaolo : 19-11-2004 alle ore 15.11.38
    Se smetti di imparare e evolverti sei morto dentro

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da makpaolo
    oppure
    $boh = mysql_query("SELECT COUNT(a1) FROM users");
    $user = mysql_feact_array($result, 0);

    echo"$user";
    dove a1= campo da contare ( meglio non l'ID )
    a me nn serve contare quanti tipi di regioni ci sono tra i record del campo (mi pare che questo codice faccia quello), ma quanti utenti sono dell'abruzzo, quanti della basilicata... ecc

    ho provato anche questo

    SELECT COUNT(*) as regione FROM user WHERE regione='Abruzzo'
    ma nn va :(

  5. #5
    L'avatar di makpaolo
    makpaolo non è connesso Utente storico
    Data registrazione
    08-05-2003
    Residenza
    Brescia ( prov.)
    Messaggi
    9,399

    Predefinito

    $boh = mysql_query("SELECT COUNT(a1) FROM users WHERE regione='abruzzo'");
    $user = mysql_feact_array($result, 0);

    echo"$user[a1]";

    dove a1= campo da contare ( meglio non l'ID )
    cosi dovrebbe andare
    Se smetti di imparare e evolverti sei morto dentro

  6. #6
    lionalex non è connesso Utente attivo
    Data registrazione
    10-12-2002
    Messaggi
    446

    Post

    potresti fare una cosa del genere un po' più avanzata ma molto più afficiente

    Codice PHP:
    $sql=mysql_query("SELECT regione,count(*) AS totale FROM user GROUP BY (regione)");
    while (
    $row=mysql_fetch_array($sql)){
    print (
    $row['regione']." >> ".$row['totale']);
    }
    Così in pratica hai una visualizzazione del genere:
    Codice:
    Abruzzo >> 3
    Campania >> 5 
    ...
    ...
    ecc.
    Il codice è semplice. L'sql in pratica seleziona la colonna regione della tua tabella e crea una nuova colonna virtuale che chiamerai totale (con il comando AS totale) il tutto viene raggruppato per tutte le regioni che hanno lo stesso nome ("GROUP BY (regione)") e il tutto viene conteggiato con l'istruzione count(*). In pratica quello che cercavi tu. Conteggia tutti i campi che hanno lo stesso nome, quindi avrai il numero di tutti quelli dell'abruzzo e così via. Con il ciclo WHILE non fai altro che scorrere il risultato della tua ricerca dell'sql che ho appena accennato. Spero di aver centrato il problema. :grin:
    Chi troppo vuole....vuole LionAlex...

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da lionalex
    potresti fare una cosa del genere un po' più avanzata ma molto più afficiente

    Codice PHP:
    $sql=mysql_query("SELECT regione,count(*) AS totale FROM user GROUP BY (regione)");
    while (
    $row=mysql_fetch_array($sql)){
    print (
    $row['regione']." >> ".$row['totale']);
    }
    Così in pratica hai una visualizzazione del genere:
    Codice:
    Abruzzo >> 3
    Campania >> 5 
    ...
    ...
    ecc.
    Il codice è semplice. L'sql in pratica seleziona la colonna regione della tua tabella e crea una nuova colonna virtuale che chiamerai totale (con il comando AS totale) il tutto viene raggruppato per tutte le regioni che hanno lo stesso nome ("GROUP BY (regione)") e il tutto viene conteggiato con l'istruzione count(*). In pratica quello che cercavi tu. Conteggia tutti i campi che hanno lo stesso nome, quindi avrai il numero di tutti quelli dell'abruzzo e così via. Con il ciclo WHILE non fai altro che scorrere il risultato della tua ricerca dell'sql che ho appena accennato. Spero di aver centrato il problema. :grin:

    spettacolare... funziona :grin:

    grazie mille a tutti ... :eyes:

  8. #8
    Guest

    Predefinito

    allora, altra domanda.
    se io, volessi contare solo le donne di una regione o solo gli uomini ?
    utilizzando questa query
    $boh = mysql_query("SELECT COUNT(a1) FROM users WHERE regione='abruzzo'");
    avrei potuto aggiungere un and sesso='uomo' , però con quello che mi hai consigliato come posso fare?
    userei le altre query che mi hanno consigliato, ma nn capisco perchè nn funzionano :(

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •