query somma

luigithen

Utente Attivo
31 Mar 2020
84
3
8
ciao ragazzi come sempre eccomi qui a cercare di risolvere un problema, grazie a tutti voi.

spero di spiegarmi al meglio,
sommando i punti per cliente e dividendo gli stessi ricevo il buono corretto esempio 8 punti diviso 20 = 0.4

il problema è che la divisione viene fatta anche con i clienti che anno 0 punti

questa è quella che utilizzo


Codice:
<?php while($row = mysqli_fetch_array($result)) {

                          $somma_punti = 0;
                          $totale_spesa = 0;

                          $query_totale ="SELECT punti.id_cliente, punti.punti, punti.spesa, calcolo_punti.calcolo FROM punti INNER JOIN calcolo_punti where id_cliente=$row[id_cliente]";
                          $risultato_totale = mysqli_query($connect, $query_totale);
                          while($somma = mysqli_fetch_array($risultato_totale))
                          {
                            $somma_punti = $somma_punti + $somma ['punti'];
                            $totale_spesa = $totale_spesa + $somma['spesa'];
                            $data = $somma['data_punti'];
                            $somma_puntis = $somma_punti / $somma ['calcolo'];
                          }

                          echo "<tr>";
                          echo "<td>" . $row['nome'] . "</td>";
                          echo "<td>" . $row['cognome'] . "</td>";
                          echo "<td>" . $row['whatsapp'] . "</td>";
                          echo "<td>" . $row['email'] . "</td>";
                          echo "<td>" . $row['data_reg'] . "</td>";
                          echo "<td>" . $row['accetta'] . "</td>";
                          echo "<td>" . $row['tessera'] . "</td>";
                          echo "<td>" . $somma_punti . "</td>";
                          echo "<td>" . "€ ".number_format($totale_spesa, 2, ',', '') . "</td>";
                          echo "<td>" . round($somma_puntis, 2). "</td>";
                          echo "</tr>";
                          unset($somma_punti);
                          unset($totale_spesa);
                          unset($data);
                        }?>

Schermata 2020-10-06 alle 13.38.24.png
 
Allora:
PHP:
echo "<td>";
if($somma_punti != 0){echo round($somma_puntis, 2);}
echo "</td>";
 
non so se hai risolto ma nel codice postato vedo due errori che possono pregiudicare il risulatato,

questa la query,
SQL:
SELECT
  punti.id_cliente
, punti.punti
, punti.spesa
, calcolo_punti.calcolo
FROM punti
INNER JOIN calcolo_punti ???????????????????????????????????????????
where id_cliente=$row[id_cliente]
la "inner join" deve essere completata con la clausola "ON" per legare le 2 tabelle in maniera coerente

questo il codice che segue la query,
PHP:
$somma_punti  = $somma_punti + $somma ['punti'];
$totale_spesa = $totale_spesa + $somma['spesa'];
$data         = $somma['data_punti'];
$somma_puntis = $somma_punti / $somma ['calcolo'];
nella query non é presente "data_punti"
 
  • Like
Reactions: luigithen
non so se hai risolto ma nel codice postato vedo due errori che possono pregiudicare il risulatato,

questa la query,
SQL:
SELECT
  punti.id_cliente
, punti.punti
, punti.spesa
, calcolo_punti.calcolo
FROM punti
INNER JOIN calcolo_punti ???????????????????????????????????????????
where id_cliente=$row[id_cliente]
la "inner join" deve essere completata con la clausola "ON" per legare le 2 tabelle in maniera coerente

questo il codice che segue la query,
PHP:
$somma_punti  = $somma_punti + $somma ['punti'];
$totale_spesa = $totale_spesa + $somma['spesa'];
$data         = $somma['data_punti'];
$somma_puntis = $somma_punti / $somma ['calcolo'];
nella query non é presente "data_punti"

ti ringrazio moltissimo per la segnalazione non mi ero accorto della mancanza. Grazie
 

Discussioni simili