Cercare il nome più popolare su una tabella

Bruschetta95

Utente Attivo
8 Feb 2014
58
0
0
www.wesharegame.com
Ciao a tutti,
oggi stavo progettando una nuova parte del mio sito e mi sono imbattuto in un problema a cui non riesco ad uscirne. Allora io do la possibilità agli utenti di inserire undici nomi che scelgo io attraverso una select e poi salvo le scelte di ogni utente nella tabella e fino a qui funziona tutto. Prima di arrivare al problema vi posto il codice con cui salvo i dati in modo da farvi capire come è strutturata la tabella:
PHP:
$inserisco = "INSERT INTO formazione (uno, due, tre, quattro, cinque, sei, sette, otto, nove, dieci, undici)VALUES('$uno', '$due', '$tre', '$quattro', '$cinque', '$sei', '$sette', '$otto', '$nove', '$dieci', '$undici')";
	$risinserisco = mysql_query($inserisco);

Ora io vorrei estrapolare per esempio il nome che compare più volte nella colonna uno.. ma sto cercando anche su internet e non sono riuscito a trovare una soluzione.. da quello che ho capito dovrei utilizzare la funzione count ma non ho capito come devo utilizzarla. Qualcuno di voi si è mai imbattuto in una situazione del genere e saprebbe dirmi come uscirne fuori? Grazie a tutti in anticipo.
 
Ciao, dovrebbe essere cosi
Codice:
SELECT count(uno) as conta FROM formazione GROUP BY uno ORDER BY conta DESC LIMIT 1
non l'ho provata
 
ok l'ho provata e mi esce fuori resource id# 3... forse devo convertire il risultato in qualche modo?
Io ho fatto così:
PHP:
$cerco = "SELECT count(due) as conta FROM formazione GROUP BY due ORDER BY conta DESC LIMIT 1";
	$riscerco = mysql_query($cerco);
	echo "$riscerco";
 
ciao
ti da quel valore perchè la riga
PHP:
$riscerco = mysql_query($cerco);
cerca il record, non lo estrare
l'echo ti da resuurce perchè l'ha trovato, se non l'avesse trovato ti avrebbe dato FALSE.
PHP:
<?php
//....
$cerco = "SELECT count(due) as conta FROM formazione GROUP BY due ORDER BY conta DESC LIMIT 1";
$riscerco = mysql_query($cerco);
$riga=mysql_fetch_array($riscerco);//qui estrai il valore cercato
echo $riga['conta'];
//....
?>
 
ok ora mi esce il numero 5 che però è il numero di volte che appare il nome più votato.. Ma io volevo il nome e non il numero.. devo fare una seconda query o si può sistemare questa?
 
ti basta aggiungere il nome del campo che vuoi estrarre preceduto da una virgola
Codice:
SELECT count(uno) as conta, uno FROM formazione GROUP BY uno ORDER BY conta DESC LIMIT 1
PHP:
echo $riga['uno'];
 
ciao
non si capisce bene quello che vuoi fare, ma per mettere delle condizioni esempio
Codice:
...FROM formazione WHERE due !='$uno' AND tre!='$uno' GROUP BY uno....
 
ciao
solito esempio
PHP:
<?php
//partendo da un array
$diverso=array($uno, $due, $tre);
$verifica=implode($diverso, "', '");
/*oppure se non vuoi/puoi partire da un array
$verifica=$uno."', '.$due."', '.$tre;
*/
$cerco = "SELECT count(due) as conta FROM formazione WHERE due NOT IN ('$verifica') GROUP BY due ORDER BY conta DESC LIMIT 1";
//....
?>
 

Discussioni simili