[risolto] MySql, SELECT, GROUP BY e COUNT

Gian06

Utente Attivo
13 Set 2010
42
0
6
Ciao a tutti, ho una difficoltà nel realizzare qualcosa di simile:

Ho una tabella in MySql così fatta:

mytable: col1 col2 col3

tizio caio sempronio
caio caio
sempronio tizio
pippo pippo pippo
tizio
ecc.

Quello che vorrei in output è il seguente:

col1 col2 col3 totale
tizio 2 1 3
caio 1 2 3
sempronio 1 1 2
pippo 1 1 1 3

ecc.

Dovrebbe essere una combinazione di SELECT, GROUP BY e COUNT, ma non riesco proprio a capire come fare.

Con il codice che segue:
PHP:
$result = mysql_query("SELECT col1, COUNT(*) FROM mytable GROUP BY col1");
		while($row=mysql_fetch_array($result))  
		{  
                  echo $row['col1'] . " ";  
                  echo $row['COUNT(*)'] . "<br> ";  
		}
ottengo come risultato:
tizio 2
caio 1
sempronio 1
pippo 1
ma non riesco a fare più di così

Qualcuno può aiutarmi?
Grazie
 
Ultima modifica di un moderatore:

Gian06

Utente Attivo
13 Set 2010
42
0
6
MySql, SELECT, GROUP BY e COUNT

Scusate, mi sono saltate le tabulazioni.
Se non risulta chiaro l'esempio vi posto qualcosa di più chiaro
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
se non ho capito male, prendo ad es 'tizio'
tu vorresti in pratica che

tizo è citato due volte nella col1, una volta in col2, (0 volte in col3), per un totale di 3 volte

è così?
se si non so se puoi risolvere solo con una query.
comunque eventualmente spiega meglio che provo a pensarci
 

Gian06

Utente Attivo
13 Set 2010
42
0
6
MySql, SELECT, GROUP BY e COUNT

Sì, borgo, è così come dici.

ciao

gian06
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
149
63
PR
www.borgo-italia.it
ciao
prova questo script, l'ho testato e funziona
dai commenti dovresti capire cosa ho fatto
PHP:
<?php
// tuoi dati di connessione
$campi=array('col1','col2','col3');//nomi dei campi in un array
//estraggo tutti i nomi presenti
$query=mysql_query("SELECT * FROM mytable");//estraggo tutti i nomi
while($riga=mysql_fetch_array($query)){
	foreach($campi as $campo){//ciclo i campi
		$nomi[]=$riga[$campo];//creo un array con tutti i nomi, qui ci saranno anche duplicati
	}
}
$unici = array_unique($nomi);//riduco l'array a solo valori unici
sort($unici);//e li ordino in ordine alfabetico, se serve
//ciclo i nomi e i campi
foreach($unici as $nome){//ciclo per nome
	foreach($campi as $campo){// e ciclo per nome campo
		//cosstiusco la querystringa e interrogo
		$query=mysql_query("SELECT $campo , COUNT(*) as quanti FROM mytable WHERE $campo='$nome' GROUP BY $campo");
		$riga=mysql_fetch_array($query);
		//costruisco un array multidimensionale es. $presenze['tizio']['col2']
		//e come valore il conteggio delle presene
		$presenze[$nome][$campo]=(int)$riga['quanti'];//lo forzo a intero
	}
	//calcolo il totale per quel nome di presenze
	$presenze[$nome]['totale']=array_sum($presenze[$nome]);
}
//e visualizzo i risultati
//qui metto un var_dump, a te fare la grafica di presentazione
echo "<pre>";
var_dump($presenze);
echo "</pre>";
?>

guarda che per fare prima ho usato le vecchie istruzioni mysql, ma tu passa a mysqli o alla classe pdo
 

Gian06

Utente Attivo
13 Set 2010
42
0
6
MySql, SELECT, GROUP BY e COUNT

Geniale, borgo, grazie!
Funziona, e con piccoli aggiustamenti l'ho adattato facilmente al mio problema reale!
 
Discussioni simili
Autore Titolo Forum Risposte Data
L update tabelle in php mysql [risolto] PHP 6
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
E [risolto] limitare lunghezza del testo in tabella Mysql PHP 5
N [RISOLTO] Mostrare a video le checkbox selezionate con PHP e MySQL PHP 4
M [risolto] leggere dati mysql riga per riga MySQL 4
G [RISOLTO]Subquery in mysql MySQL 5
H [RISOLTO] paginazione PHP + mysql PHP 15
felino [RISOLTO] [MySQL] Unire due tabelle esistenti in una nuova MySQL 1
O [risolto] Inserimento nuovo campo in mysql. Problema PHP 6
A [RISOLTO]Come generare query dinamica PHP-MYSQL PHP 2
D [RISOLTO]domande varie su creazione sito con php, mysql e phpmyadmin PHP 42
K [RISOLTO]installazione Mysql server MySQL 15
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 6
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7

Discussioni simili