2016-10-22 88 views
2

我需要幫助得到一些兩行具有相同的ID: 我知道SQL代碼,這裏面是:獲取在SQL中使用相同的ID行的總和PHP

SELECT orderID,sum(itemPrice) as sum FROM orderitems GROUP BY orderID; 

但我不不知道如何在PHP中實現它。 這是我的代碼:

<?php 
    require('database.php'); 
    $query = 'SELECT * FROM `orderitems`'; 
    $statement = $db->prepare($query); 
    $statement->execute(); 
    $addresses = $statement->fetchAll(); 
    $statement->closeCursor(); 



    $order_id = filter_input(INPUT_POST, 'order_id'); 

    $total='SELECT SUM(itemPrice) 
      FROM orderitems 
      group by orderID'; 
    $statement = $db->prepare($total); 
    $statement->execute(); 
    $total_order= $statement->fetchAll(); 


    ?> 
    <html> 
     <head> 
      <title>Total of the order</title> 
      <link rel="stylesheet" type="text/css" href="main.css" /> 

     </head> 
     <body> 
      <h1> 
       Total for an order 
      </h1> 
      <h4> 
       <label>orderID : </label> <?php echo $order_id ;?> 


      </h4> 
      <p>The total for this order consisting of :</p> 

      <p><?php echo $total_order; ?> 

      </p> 
     </body> 
    </html> 

但它沒有顯示的結果,而不是寫簡單ARRAY 我什var_dumb但然後它表明這樣的:

陣列(3){[0] => array(2){[「SUM(itemPrice)」] => string(6)「399.00」[0] => string(6)「399.00」} [1] => array(2){[ (itemPrice)「] => string(6)」699.00「[0] => string(6)」699.00「} [2] => array(2){[」SUM(itemPrice)「] => string(7 )「1048.99」[0] => string(7)「1048.99」}}

它顯示正確的答案,但我想擺脫這個其他的東西。

回答

0

你可以用一個簡單的foreach

$total='SELECT SUM(itemPrice) as sum 
     FROM orderitems 
     group by orderID'; 
    $statement = $db->prepare($total); 
    $statement->execute(); 
    $total_order= $statement->fetchAll(PDO::FETCH_ASSOC); 
    foreach($total_order as $row) { 
     echo $row['sum'] . ' <br />'; 
    } 
在此

嘗試伸出的回聲,但你可以添加到div的

+0

耶酷感謝名單了很多隻是多了一個有利請如何與各個不同的ID得到的只是一個總和 –

+0

http://stackoverflow.com/users/3522312/scaisedge –

+0

更好地解釋你需要onky的第一個結果或或某人其他 – scaisEdge

2

兩個建議:

(1)你的源代碼表明您想要選擇一個特定的orderId。所以你的第二個準備好的SQL語句缺少實現它的WHERE子句。或者,或者,第二條語句缺少可從訪存結果訪問相應行的列orderID。 (2)你提取結果的方式產生一個數組,每個元素由第二個語句選擇的行之一組成。您仍然必須選擇目標行。在選擇該行後,您還必須訪問相應的列。所以,爲了爭論,讓我們說你的第二行「var-dump」的例子是所需的。您將訪問它像這樣:

<p><?php echo $total_order[1]['sum(itemPrice)']; ?> 
+0

是得到你的觀點非常感謝你:) –