2013-10-09 5 views
-1

J'ai une quantité de nom de colonne, unit_price et total_amount. Le champ total_amount dans ma base de données mis à zéro, dans ma requête j'ai utilisé SUM (unité_price * quantité) AS total_amount pour obtenir la valeur totale comme total_amount. Mais quand j'ai essayé d'obtenir la somme du montant total comme total_sum est toujours 0. est-ce parce que le champ total_amount dans ma base de données est mis à zéro? Ce que je veux faire, c'est obtenir la somme (total_amount) AS total_sum mais il affiche toujours 0.Comment obtenir la somme de la colonne de la table?

Ceci est ma requête.

<?php 
$mysqli = new mysqli("localhost", "root", "", "app"); 

    $term = $_GET['supp']; 
    $result = $mysqli->query("SELECT *, SUM(unit_cost*quantity) AS total_amount FROM procurement WHERE supplier LIKE '%".$term."%' GROUP BY counter"); 
    echo'<table id="tfhover" cellspacing="0" class="tablesorter" style="text-transform:uppercase;" border="1px"> 
     <thead> 
     <tr> 
    <th>SUPPLIER</th> 
    <th>ITEM</th> 
    <th>DESCRIPTION</th> 
    <th>QTY</th> 
    <th>UNIT</th> 
    <th>UNIT PRICE</th> 
    <th>Total Amount</th> 
     </tr> 
     </thead>'; 
     echo'<tbody>'; 
while($row = $result->fetch_assoc()){ 
echo'<tr> 
      <td>'.$row['supplier'].'</td> 
      <td>'.$row['item_name'].'</td> 
      <td>'.$row['item_description'].'</td> 
      <td>'.$row['quantity'].'</td> 
      <td>'.$row['unit'].'</td> 
      <td>'.number_format($row['unit_cost'], 2, '.', ',').'</td> 
      <td>'.number_format($row['total_amount'], 2, '.', ',').'</td> 
     </tr>'; 
     } 
     echo'<TR> <TD COLSPAN=6 BGCOLOR="#99CCFF">TOTAL AMOUNT</TD> <td>'.number_format($row['total_sum'], 2, '.', ',').'</td></TR>'; 
    echo "</tbody></table>"; 

?> 

Mon autre problème est quand j'insérer ce 'TOTAL' .number_format écho de code ($ row [ 'de total_sum'], 2,, ' ' '')''. à l'intérieur de la boucle while. Je veux avoir seulement 1 rangée de montant total.

+1

Vous devriez lire ce lien http://beginner-sql-tutorial.com/sql-group-by-clause.htm –

Répondre

0

SELECT *, SUM(unit_cost*quantity) AS total_amount FROM procurement WHERE supplier LIKE '%".$term."%' GROUP BY counter"

Ceci est une instruction select qui ne mettre à jour les données dans la base de données. Il semble que votre total_amount, qui peut être évalué chaque fois que vous en avez besoin, n'existe pas nécessairement en tant que colonne dans votre tableau.

En outre, pouvez-vous poster votre structure de table? En fait, le SQL ne semble pas correct de toute façon.

+1

Je l'ai résolu, j'ai créé une autre requête $ result1 = $ mysqli-> query ("SELECT * , SUM (unité_cost * quantité) AS total_amount FROM approvisionnement WHERE fournisseur LIKE '% ". $ Term."%' GROUP BY fournisseur "); \t while ($ rows = $ result1-> fetch_assoc()) { \t echo ' MONTANT TOTAL' .number_format (lignes $ [ 'TOTAL_AMOUNT'], 2 , '.', ','). ' '; \t} si c'est correct? –

Questions connexes