Semplifico con un esempio.
Ho una tabella chiamata "favorito" con 3 campi: quota / arrivo / diff (dove "quota" e "diff" sono float) così popolato:
2.01 / 4 / 1.11
1.99 / 2 / 1.03
3.02 / 3 / 0.31
4.92 /1 / 0.78
3.75 / 1 / 0.29
1.46 / 1 / 3.18
1.95 /4 / 0.84
Questo è il codice
In pratica deve fornire poi un ordine per differenza ed essendo variabili con 2 decimali dopo la virgola ho pensato di moltiplicarlo per 100 così da avere un array che poi diventa bidimensionale perché ciascun "arrivo" può assumere valori 1, 2, 3 o 4.codice:<?php //connessione al db $query = "SELECT quota,arrivo,diff FROM favorito "; $result = (mysql_query($query, $db)); while ($dati = mysql_fetch_array($result)) { $quota = $dati['quota']; $arrivo = $dati['arrivo']; $diff = $dati['diff']; $indice=$diff*100; $conta[$indice][$arrivo]=$conta[$indice][$arrivo]+1; if ($arrivo==1) { $conta[$indice][5]=$conta[$indice][5]+$quota;} } ?><table width="90%" border="1" cellspacing="1" cellpadding="2" bgcolor="#ecf2f6" align="center"> <tr><th><font size="4">VISUALIZZAZIONE PER DIFFERENZA DI QUOTA</font></th></tr> <table width="90%" border="1" cellspacing="1" cellpadding="2" bgcolor="#f0fff0" align="center"> <thead> <tr><th width="32%"><h3>diff. quota</h3></th> <th width="34%"><h3>vittorie</h3></th> <th width="34%"><h3>corse disputate</h3></th> </tr></thead><tbody> <?php //qua serve il for per stampare le righe for ($i=0; $i<=5000; $i++) { //occore vedere che la singola riga abbia almeno una corsa $cd=$conta[$i][1]+$conta[$i][2]+$conta[$i][3]+$conta[$i][4]; $conta[$i][6]=substr($conta[$i][6],0,-1); if ($cd>0) { ?> <tr><td><center><?php echo number_format($i/100,2,'.',''); ?></center></td> <td><center><?php echo $conta[$i][1]; ?></center></td> <td><center><?php echo $cd; ?></center></td> </tr><?php } } echo ("</tbody></table> </p>");
I valori delle "diff" sono
1.11
1.03
0.31
0.78
0.29
3.18
0.84
ma quando viene visualizzata la tabella esce così
0.28 1 1
0.31 1
0.78 1 1
0.84 1
1.03 1
1.11 1
3.18 1 1
In pratica lo 0.29 mi diventa 0.28.
Perché??????

Rispondi quotando
