[PHP] operazione matematica tra risultati di query

giacomo9783

Utente Attivo
24 Ago 2016
99
0
6
41
ho questa select che mi genera un ciclo while e immette tutti i risultati in tabella:

PHP:
"SELECT * FROM PAZIENTI WHERE INDICE = 'MENSILITA' ORDER BY ..."
while($row = mysql_fetch_array( $result )) {

// emissione del contenuto di ogni riga in una tabella
echo "<tr>";
echo '<td nowrap align="center"><span style="font-size: 16px; font-family: arial">' . $row['COGNOMENOME'] . '</td>';
echo '<td nowrap align="center"><span style="font-size: 16px; font-family: arial">' . $row['PERIODOITA'] . '</td>';
echo '<td nowrap align="center"><span style="font-size: 14px; font-family: arial"><b>' . $row['NOTE'] . '</b></td>';
echo '<td nowrap align="center"><span style="font-size: 18px; font-family: arial"><b>' . $row['QTA'] . '</b></td>';
echo '<td nowrap align="center"><span style="font-size: 18px; font-family: arial"><b>' . $row['CONF'] . '</b></td>';
'</tr>';

si può, in un sol colpo, eseguire una operazione matematica fra $row['QTA'] e $row['CONF'] e inserire il risultato nel ciclo while, cioè stamparlo a video come tutti gli altri risultati?
 
supponendo che l'operazione matematica sia una moltiplicazione,
PHP:
// soluzione 1

"SELECT *, (qta * conf) AS valcalcolato FROM PAZIENTI WHERE INDICE = 'MENSILITA' ORDER BY ..."
.....
.....
echo '<td nowrap align="center"><span style="font-size: 18px; font-family: arial"><b>' . $row['valcalcolato'] . '</b></td>';
echo '</tr>';


// soluzione 2

while($row = mysql_fetch_array( $result )) {

$valcalcolato = $row['QTA'] * $row['CONF'];

// emissione del contenuto di ogni riga in una tabella
echo "<tr>";
.....
.....
echo '<td nowrap align="center"><span style="font-size: 18px; font-family: arial"><b>' . $valcalcolato . '</b></td>';
echo '</tr>';


// poi già che ci sei
echo '<tr>'
   . '<td nowrap align="center"><span style="font-size: 16px; font-family: arial">' . $row['COGNOMENOME'] . '</td>'
   . '<td nowrap align="center"><span style="font-size: 16px; font-family: arial">' . $row['PERIODOITA'] . '</td>'
   . '<td nowrap align="center"><span style="font-size: 14px; font-family: arial"><b>' . $row['NOTE'] . '</b></td>'
   . '<td nowrap align="center"><span style="font-size: 18px; font-family: arial"><b>' . $row['QTA'] . '</b></td>'
   . '<td nowrap align="center"><span style="font-size: 18px; font-family: arial"><b>' . $row['CONF'] . '</b></td>'
   . '</tr>';
 
Visto che ci sono, ho una richiesta molto simile. Mi succede spesso la seguente casistica:

COGNOMENOME QTA
Mario Rossi 15
Mario Rossi 20
Carlo neri 10
Carlo neri 10

Dovrei ottenere stampato a video come segue:

COGNOMENOME QTA
Mario Rossi 35
Carlo neri 20

In pratica sommare i valori del campo QTA laddove i valori del campo COGNOMENOME sono uguali.

Non mi è venuto in mente niente.
 
PHP:
select
  COGNOMENOME
, sum(QTA)        as SUMQTA
, sum(CONF)       as SUMCONF
, sum(QTA * CONF) as SUMTOT
from PAZIENTI
where INDICE = 'MENSILITA'
group by COGNOMENOME
order by COGNOMENOME
se aggiungi campi alla select, questi devono essere elencati anche nella "group by"
ho lasciato 'MENSILITA' come l'hai sctitta tu nel primo post, non sapendo come è gestita nello script, eventualmente correggi il nome
 

Discussioni simili