2012-02-16 40 views
0

請將我想呼應下一行 列的求和,但它顯示與prev行。呼應求和結果

這是代碼

$body = "<html><body><table border='1'> 
<tr> 
<th>Shop Name</th> 
<th>Product Name</th> 
<th>Size</th> 
<th>Color Name</th> 
<th>Quantity</th> 
<th>Price</th> 
<th>Cost</th> 
</tr>"; 
$totalPrice = 0; 
$pplresult = mysql_query("SELECT * FROM repplac WHERE Uname = '{$_SESSION['username']}'"); 
while($row = mysql_fetch_assoc($pplresult)){ 
    $body .= "<tr> 
     <td>" . $row['Sname'] ."</td> 
     <td>" . $row['Pname'] ."</td> 
     <td>" . $row['Psize'] ."</td> 
     <td>" . $row['Pcolour'] ."</td> 
     <td>" . $row['Pquantity'] ."</td> 
     <td>" . $row['Price'] ."</td> 
     <td>" . $row['Tprice'] ."</td> 
     </tr>"; 
     $totalPrice += $row['Tprice']; 
} 
$body .= "<tr> 

      <td>" . $totalprice ."</td> 
     </tr>"; 

$body .="</table></body></html>"; 
+0

爲什麼你要做同樣的SQL查詢兩次?可以存儲第一個查詢的結果或讓數據庫進行求和。另外,它似乎並沒有在任何地方初始化'$ totalprice'。 – 2012-02-16 13:13:57

+0

那是什麼問題? – Poonam 2012-02-16 13:14:06

回答

1

您想要在最後一列顯示右邊的總數嗎?

爲您將需要在以後的TR即添加一些TD的,

$body .="<tr> 
     <td colspan=6></td> 
     <td>" . $totalprice ."</td> 
    </tr>"; 

即使你的代碼是不恰當的。爲什麼你要爲同一個mysql查詢結果集遍歷while循環兩次?

$pplresult = mysql_query("SELECT * FROM repplac WHERE Uname = '{$_SESSION['username']}'"); 
while($row = mysql_fetch_assoc($pplresult)){ 
    $body .= "<tr> 
     <td>" . $row['Sname'] ."</td> 
     <td>" . $row['Pname'] ."</td> 
     <td>" . $row['Psize'] ."</td> 
     <td>" . $row['Pcolour'] ."</td> 
     <td>" . $row['Pquantity'] ."</td> 
     <td>" . $row['Price'] ."</td> 
     <td>" . $row['Tprice'] ."</td> 
    </tr>"; 
    $totalprice += $row['TPrice']; 
} 

$body .="<tr> 
      <td colspan=6>Total :</td> 
      <td>" . $totalprice ."</td> 
     </tr>"; 


$body .="</table></body></html>"; 
+0

我想在執行後的一段時間內在新行上顯示總數 – lostty84 2012-02-16 13:29:01

+0

以上代碼塊將在您需要打印的新行中打印總價 – 2012-02-16 13:36:12

+0

我已更新了代碼請幫忙看看,因爲ia認爲它可能是導致問題的表格頭文件 – lostty84 2012-02-16 14:01:36

1

給這個td的7列跨度,所以它的100%廣:在查詢的價格相加

$body .="<tr> 
    <td colspan="7">" . $totalprice ."</td> 
    </tr>"; 

您也可以提高工作效率:

SELECT *, SUM(Tprice) AS total_price FROM repplac WHERE Uname = '{$_SESSION['username']}' 

SELECT Sname, Pname, Psize, Pcolour, Pquantity, Price, Tprice, SUM(Tprice) AS total_price FROM repplac WHERE Uname = '{$_SESSION['username']}' 

然後在你的PHP

$body .= ... $row['total_price'] ...; 
0

嘗試添加colspan<td colspan=7>" . $totalprice ."</td>

1

首先,你爲什麼運行相同的查詢兩次?您可以在寫出行時以相同的迭代方式進行求和:

$body = "<html><head><title></title></head><body><table>"; 
$totalPrice = 0; 
$pplresult = mysql_query("SELECT * FROM repplac WHERE Uname = '{$_SESSION['username']}'"); 
while($row = mysql_fetch_assoc($pplresult)){ 
    $body .= "<tr> 
     <td>" . $row['Sname'] ."</td> 
     <td>" . $row['Pname'] ."</td> 
     <td>" . $row['Psize'] ."</td> 
     <td>" . $row['Pcolour'] ."</td> 
     <td>" . $row['Pquantity'] ."</td> 
     <td>" . $row['Price'] ."</td> 
     <td>" . $row['Tprice'] ."</td> 
     </tr>"; 
    $totalPrice += $row['Tprice']; 
} 
// echo "$totalprice"; 
// Add a column with colspan 6 to push the totalprice column under the Tprice column. 
$body .= '<tr> 
      <td colspan="6"> 
      <td>' . $totalprice ."</td> 
     </tr>"; 


$body .="</table></body></html>";