[PHP] elencare e conteggiare dati di una colonna del db

mcroy

Nuovo Utente
26 Mag 2018
7
1
3
salve ragazzi.
vorrei chiedervi un aiutino per estrarre dati dal db per poi elencarli e conteggiarli in una table.

nel db "user" ho una colonna "userlang" con inserito il linguaggio dell'interfaccia utilizzato dallo user.
verrei fare una tabella dove riepiloga i linguasggi utlizzati e il numero di utenti che lo utilizza

tipo:
HTML:
<table>
  <tr>
    <td>User language</td>
    <td>Quanti</td>
  </tr>
  <tr>
    <td>it-it</td>
    <td>20</td>
  </tr>
  ecc ecc..
<table>
spero di essere stato chiaro.

grazie in anticipo per le risposte
 
Ultima modifica di un moderatore:
Puoi utilizzare il COUNT nella Select oppure il myslq_num_row


Inviato dal mio iPhone utilizzando Tapatalk
 
@mcroy
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008


Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 
Puoi utilizzare il COUNT nella Select oppure il myslq_num_row


Inviato dal mio iPhone utilizzando Tapatalk

ciao grazie per la risposta. quando puoi se vuoi, potresti inviarmi il codice completo. scusa ma sono ai primi passi, anzi primissimi
 
  • Like
Reactions: AC1
PHP:
$sql=mysqli_query($var_connessione, "SELECT COUNT(*) FROM nome_tabella WHERE ..."); //al posto dei puntini metti le condizioni per prelevare i dati
//oppure
$sql=mysqli_query($var_connessione, "SELECT * FROM nome_tabella WHERE ..."); //al posto dei puntini metti le condizioni per prelevare i dati
$numero=mysqli_num_rows($sql);
 
  • Like
Reactions: AC1
Invece di effettuare N query in base al numero di lingue, basterebbe effettuarne una sola con la clausola GROUP BY

Codice:
SELECT lingua, COUNT(lingua) FROM TABELLA GROUP BY lingua;
 
Invece di effettuare N query in base al numero di lingue, basterebbe effettuarne una sola con la clausola GROUP BY

Codice:
SELECT lingua, COUNT(lingua) FROM TABELLA GROUP BY lingua;
ok, ma in php poi come recupero questi dati e li inserisco in una tabella?
 
PHP:
echo "<table>";
$sql=mysqli_query($var_connessione, "SELECT lingua, COUNT(lingua) AS numero FROM tabella GROUP BY lingua");
while($gets=mysqli_fetch_assoc($sql)){
$lingua=$gets['lingua'];
$numero=$gets['numero'];
echo "<tr><td>$lingua</td><td>$numero</td></tr>";
}
echo "</table>";
 
Ultima modifica:
PHP:
echo "<table>";
$sql=mysqli_query($var_connessione, "SELECT lingua, COUNT(lingua) AS numero FROM tabella GROUP BY lingua");
while($gets=mysqli_fetch_assoc($sql)){
$lingua=$gets['lingua'];
$numero=$gets['numero'];
echo "<tr><td>$lingua</td><td>$numero</td></tr>";
}
echo "</table>";

perfetto, grazie infinite! ;)
io ho scritto così nella pagina
PHP:
<?php
connetti();
$sql2=mysqli_query($connessione, "SELECT userlang, COUNT(userlang) AS count FROM userprofile GROUP BY userlang");
chiudi_connessione();
?>
            <div class="table-responsive">
                <table class="table table-bordered">
                    <tr>
                        <th scope="col">Language</th>
                        <th scope="col">Count</th>
                    </tr>
<?php
        while($gets=mysqli_fetch_assoc($sql2)){
            $lingua=$gets['userlang'];
            $numero=$gets['count'];
?>
                <tr>
                    <td><?php echo $lingua;?></td>
                    <td><?php echo $numero;?></td>
                </tr>
<?php
    }
?>
                </table>
            </div>
credo vada bene lo stesso.
ho provato la query nel database e mi da il risultato che serve ma nella pagina non esce il risultato.
cosa ho sbagliato?
 
Ultima modifica:
Non so se cambierà qualcosa, ma prova a sostituire da così:
PHP:
<?php
        while($gets=mysqli_fetch_assoc($sql2)){
            $lingua=$gets['userlang'];
            $numero=$gets['count'];
?>
                <tr>
                    <td><?php echo $lingua;?></td>
                    <td><?php echo $numero;?></td>
                </tr>
<?php
    }
?>
A così:
PHP:
<?php
        while($gets=mysqli_fetch_assoc($sql2)){
            $lingua=$gets['userlang'];
            $numero=$gets['count'];
echo "                <tr>
                    <td>$lingua</td>
                    <td>$numero</td>
                </tr>";
    }
In alternativa se non dovesse funzionare prova a controllare il codice sorgente della pagina, forse lì troverai l'errore
 
Ultima modifica:
Se chiudi la connessione subito dopo la query il risultato nelle variabili non passa


Inviato dal mio iPhone utilizzando Tapatalk
 
  • Like
Reactions: Tommy03
Se chiudi la connessione subito dopo la query il risultato nelle variabili non passa


Inviato dal mio iPhone utilizzando Tapatalk

scusate il ritardo, un po incasinato.
è vero! il problema era proprio quello: non passavano le informazioni perchè chiudevo la connessione prima.

grazie mille. scusate la disattenzione.
 

Discussioni simili