Salve a tutti.
Ho un campo numerico con due decimali di db Mysql.
Nell'estrazione dei dati vorrei che mi mettesse da solo i separatori delle migliaia e la virgola in doppia cifra.
Come posso fare?
Grazie tante e scusate il disturbo,
franz
Salve a tutti.
Ho un campo numerico con due decimali di db Mysql.
Nell'estrazione dei dati vorrei che mi mettesse da solo i separatori delle migliaia e la virgola in doppia cifra.
Come posso fare?
Grazie tante e scusate il disturbo,
franz
number_format(). Vedi il manuale .Originariamente inviato da franz79
Salve a tutti.
Ho un campo numerico con due decimali di db Mysql.
Nell'estrazione dei dati vorrei che mi mettesse da solo i separatori delle migliaia e la virgola in doppia cifra.
Come posso fare?
Grazie tante e scusate il disturbo,
franz
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
dunque, io ho fatto così nella select:
e poi richiamo il dato così:Codice PHP:
$query_limit = mysql_query("SELECT id, numero, tipologia, oggetto, NUMBER_FORMAT(importocorso, 2, ',', ' '), sezione, DATE_FORMAT(giorno,'%d/%m/%Y') as data FROM determinazioni WHERE tipologia= '$tipologia' ORDER BY numero DESC LIMIT $primo, $per_page");
while($results = mysql_fetch_array($query_limit))
ma mi restituisce:Codice PHP:
print ($results['importocorso']);
Warning: Supplied argument is not a valid MySQL result resource in /var/www/miosito/public/portal/determine/contocorso.php on line 90
Eppure il campo si chiama effettivamente "importocorso". Dove sbaglio?
number_format() e' una funzione di php.
$new_format = NUMBER_FORMAT($results['importocorso'], 2, ',', ' ');
echo $new_format;
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
Adesso li scrive giusti, ma ho un altro problema (scusa tanto il disturbo...)
Dunque, io faccio fare una somma di tutti i valori presenti nel campo importocorso, e per farlo facevo così:
e adesso, formattando, faccio così:Codice PHP:
$query_limit = mysql_query("SELECT id, numero, tipologia, oggetto, importocorso, sezione, DATE_FORMAT(giorno,'%d/%m/%Y') as data FROM determinazioni WHERE tipologia= '$tipologia' ORDER BY numero DESC LIMIT $primo, $per_page");
while($results = mysql_fetch_array($query_limit))
{
$cifra=$results['importocorso'];
$conto=$conto + $cifra;
(...)
mysql_close();
print ("
");
print ("
");
print ("[b]");
print ("Totale complessivo: € ");
print($conto);
?>
Il fatto è che le cifre vengono scritte giuste, ma LA SOMMA E' SBAGLIATA!!! in pratica mi viene € 3901 al posto di € 5341435Codice PHP:
{
$new_format = NUMBER_FORMAT($results['importocorso'], 2, ',', ' ');
$cifra=$new_format;
$conto=$conto + $cifra;
echo '<div align="center">';
echo '<center>';
echo '<table border="0" width="845" height="18">';
echo '<tr>';
echo '<td width="55" height="17" style="border: 1 solid #032D4E">';
echo '<p align="center"><font face="Arial" size="2">';
print ($results['numero']);
echo '<td width="82" height="17" style="border: 1 solid #032D4E align="center"><font face="Arial" size="2">';
print ($results['data']);
echo '<td width="217" height="17" style="border: 1 solid #032D4E align="center"><font face="Arial" size="2">';
print ($results['oggetto']);
echo '<td width="137" height="17" style="border: 1 solid #032D4E align="center"><font face="Arial" size="2">';
print ($new_format);
echo '<td width="238" height="17" style="border: 1 solid #032D4E align="center"><font face="Arial" size="2">';
print ($results['sezione']);
echo '</font></td>';
echo '</tr>';
echo '</table>';
echo '</center>';
echo '</div>';
}
mysql_close();
print ("
");
print ("
");
print ("[b]");
print ("Totale complessivo: € ");
print($conto);
?>
Come mai?
fai le somme prima di formattare il numero... in ogni caso la somma è sbagliata xke nella notazione americana la virgola separa le migliaia e il punto separa i decimali, dato che passi una stringa ad una somma php effettua un casting forzato e converte quella stringa in un numero, xò con notazione americana
il number_format lo devi utilizzare solo al momento di stampare il dato. Php considera il punto ccome divisore dei decimali, comunque.
In altre parole visualizzi come vuoi con number format, esattamente come fai in mysql con date_format e la data. Tieni presente che per php diventa una stringa.
Quindi tutte le operazioni vanno eseguite con il punto come divisore decimale.
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.