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

    Contare quante volte 'pippo' è nel mio database e quante volte 'pluto'. Come?

    Ciao,
    ho un mio database con 300 records e in un campo nome è contenuto il valore 'pippo' non sò quante volte e anche il valore 'pluto'.
    E' possibile estrarre con una QUERY il numero di ricorrenze presenti nel database.

    Praticamente mi interessa che lo script mi restituisca:
    pippo -> 23 volte
    pluto -> 11 volte

    ovviamente ho molti più valori da estrarre oltre a pippo e pluto

    Attualmente uso questa query per le letture generiche

    Codice PHP:
    $res_stat mysql_db_query("$nome_database""select * from nomidata);
    $num_stat = mysql_num_rows($res_stat);
    if (
    $num_stat > 0)
    {
        for (
    $i_stat=0; $i_stat<$num_stat$i_stat++)
        {
            echo mysql_result(
    $res_stat$i_stat, "nominativo");    
        }

    E' possibile fare tutto con una sola query o devo prima leggere tutti i records e memorizzarmi i valori e poi ordinarli?
    Esiste una formula tipo 'mostrami per ogni nome in archivio il numero di volte che è presente in tutto il database'.

    Grazie in anticipo
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  2. #2
    $sql = "SELECT COUNT(*) FROM tabella WHERE NOME='pippo'";
    $result=mysql_query($sql);
    $row=mysql_fetch_row($result);
    echo "PIPPO appare ".$row[0]." volte in archivio";

  3. #3
    Ti ringrazio per la risposta ma non è questo che intendevo.
    A me interessa che mi restituisca un elenco dei nomi con accanto il numero di volte che sono presenti, indipendentemente da 'pippo' o 'pluto'.

    Cioè
    pippo = 20
    pluto = 11
    topolino = 7

    Praticamente io non conosco i valori contenuti ma voglio che siano 'raggruppati' e conteggiati.

    Io te la dire così

    Codice PHP:
    $res_stat mysql_db_query("$nome_database""select count(nome) as presenze  from nomidata); 
    $num_stat = mysql_num_rows($res_stat); 
    if (
    $num_stat > 0) 

        for (
    $i_stat=0; $i_stat<$num_stat$i_stat++) 
        { 
            echo mysql_result(
    $res_stat$i_stat, "nominativo") . " $presenze volte
    ";   
            
        } 

    Sò che è sbagliato ma la logica è questa.
    Grazie in anticipo
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  4. #4
    sarà che non capisco ancora bene..ma a me sembra che il codice che ti ho messo fa proprio quello no?

  5. #5
    Ciao,
    no, in base al tuo codice mi estrae solo il 'pippo' perchè lo inserisco nella query con il WHERE (ma io non conosco i nomi in archivio, pippo e pluto era un esempio per spiegarmi).

    A me interessa raggruppare i nomi indicandone accanto il numero di volte che sono ripetuti nei vari records (nome per nome).

    E' un sitema di statistiche.
    Ciao
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  6. #6
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    codice:
    select nome,count(nome) as occorrenze
    from tabella
    group by nome

  7. #7
    Grande nicola, proprio questo.
    Ho combinato la tua query con un bel where per estrarre ma mi fornisce un errore

    Questa la query incriminata
    Codice PHP:
    select *, count(prodotto) as occorrenze from prodotti where cliente $codice_cliente group by prodotto 
    eppure mi sembra che sia corretta.. :master:

    Sai dirmi dove padello?
    Grazie ancora
    Dalla vita altrui attingeva la sua oscura magia...
    Membro del Sacro Ordine degli elfi oscuri di Kand

  8. #8
    Utente di HTML.it L'avatar di nicola75ss
    Registrato dal
    Nov 2004
    Messaggi
    12,923
    Se $codice_cliente è una stringa e non un valore numerico devi racchiuderlo tra apici.

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.