Domanda

Sono un principiante quando si tratta di SQL e PHP, e sto cercando di arrotondare un risultato di prezzo medio e togliere gli zero extra che appaiono attualmente.

Attualmente il mio risultato viene visualizzato come: $ 3.005000

Al momento il mio codice è il seguente:

$result = mysql_query("SELECT AVG(price) FROM milk WHERE price > 0 ");
$row = mysql_fetch_row ($result);

Ho trovato diversi esempi di arrotondamento e troncamento di SQL, ma sfortunatamente i tutorial che ho visto non mi forniscono informazioni utili su dove o come dovrei implementare queste modifiche.

Questo mi lascia fare ipotesi su dove apportare modifiche, nessuna delle quali ha funzionato finora (ovviamente).

Se qualcuno potesse fornirmi un esempio di come arrotondare e troncare i miei risultati, che include dove esattamente ho bisogno di apportare queste modifiche nella mia configurazione attuale, sarebbe molto utile e sarei molto grato! Mi dispiace davvero se il mio n00bishness rende più difficile spiegare la soluzione.

Grazie!

È stato utile?

Soluzione

MySQL ha un ROUND () funzione.

Quindi, basta arrotondare la media nella query SQL:

$result = mysql_query("SELECT ROUND(AVG(price),2) FROM milk WHERE price > 0 ");

Se si verificano problemi di formattazione, è possibile utilizzare la funzione number_format () di PHP durante l'output.

Altri suggerimenti

La formattazione dei dati deve essere eseguita nello script che crea la query, non nella query stessa. Ad esempio, in PHP puoi scrivere quanto segue usando sprintf :

$formatted_price = sprintf("%01.2f", $unformatted_price);

(Esempi di complementi di il manuale di PHP ).

Inoltre, generalmente, i valori dei prezzi sono memorizzati come tipi decimali o numeri interi in scala, non tipi in virgola mobile, poiché i valori in virgola mobile non sono esatti.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top