- Home
- Categorie
- Coding e Sistemistica
- Coding
- Contare valori uguali, in campi diversi, in un record
-
Contare valori uguali, in campi diversi, in un record
Ciao a tutti,
è la prima volta che scrivo, per quanto abbia cercato non ho trovato risposta e quindi azzardo con la domanda. Spero di non evere dupplicato un altro tread.
Sto sviluppando un applicazione per la redazione di classifiche sportive. In particolare si tratta di BikeTrial. Il problema è questo:
Ottengo da una query la selezione di un record.
Lo "spezzetto" con un mysql_fetch_array in modo da ottenere una cosa tipo:
$result_g1z1 = $risultato['g1z1'];
$result_g1z2 = $risultato['g1z2'];
$result_g1z3 = $risultato['g1z3'];
$result_g1z4 = $risultato['g1z4'];
...
e via così a trovare 60 variabili.
I valori trovati sono sempre numerici e sono 0,1,2,3,5.
Cioè ogni record contiene una serie di valori così:
0,1,1,2,0,5,5,0,2,3,3,1,0,0,5,2,0,1 eccetera (sono 60 campi + altri ID).
Devo contare quanti "0", quanti "1", quanti "2", quanti "3" e quanti "5" ci sono nel record.
Penso che sia necessario usare array_count_values ... ma non riesco a capire come funziona.
Aiutino ?
-
Ciao juliusgg,
la funzione che hai indicato non fà al caso tuo, se ho ben capito.
La soluzione migliore mi sembra creare un array dove l'indice sarà 0,1,2,3,5 che volevi contare tu, e controlli ogni campo aumentando di 1 il valore dell'array creato.
-
Ciao Thedarkita, grazie per la rapida risposta. Probabilmente hai ragione, la tabella ha una settantina di campi, inizia con gli identificativi del Rider, del team e poi ci sono i 60 campi che contengono appunto gli zeri, uno, due, tre, cinque.
Puoi postarmi una bozza di script ? Non riesco a capire come costruire l'Array.
-
I campi che nomi hanno? Se si riesce a ciclarli è meglio piuttosto che scriverli tutti.
-
Wow ... che rapidità.
Ti spiego: la gara può essere costituita da 4 giri per 15 zone. Il caso è improbabile ma spesso succede che ci siano quattro giri per sei zone oppure due giri per quindici. Quindi ho deciso di fare 4 per 15 codificando il nome dei campi così: g1z1 ovvero giro 1 zona 1 e a seguire finoa a g1z15 per poi passare a g2z1 fino a g4z15.
La tabella è già in uso e quindi se possibile dovrei lasciarla stare altrimenti devo modificare un sacco di roba fatta con fpdf.
-
[php]
$ricorrenze = array(0 => 0, 1 => 0, 2 => 0, 3 => 0, 5 => 0);for($g = 1; $g<=4; $g++)
for($z=1; $z<=15; $z++)
$ricorrenze[$risultato['g'.$g.'z'.$z]]++;//
echo $ricorrenze[1]; // Numero di campi avente valore 1
[/php]
Non ho provato il codice, ma dovrebbe andare.
-
lo provo e ti dico qualcosa tra poco !
-
... sei un grande ... funziona !!!
Al primo colpo. Non ci sarei mai arrivato.
Mi hai dato un grandissimo aiuto. Mi farò vivo ancora probabilmente. Se avessi scoperto prima questo forum ...
Mi puoi trovare su *** , io sono Giuliano.
Grazie ancora.
-
Figurati.

