2012-01-23 6 views
2

私は私の目的は$ _SESSIONの中に隠さのProductID、[「カート」] を取得し、合計にこの配列をループして合計を得る方法は?

を計算するために、SQLクエリでこれらのIDを使用していたここに私のコードは

public function getProductID(){ 
    $keys = array_keys($_SESSION['cart']); 
    return $keys; 
} 


public function getShippingFee(){ 
    $ids = $this->getProductID(); 
    foreach($ids as $id){ 
    $query = mysql_query("SELECT * FROM deliverycharges WHERE ProductID = $id"); 
    $row = mysql_fetch_assoct($query); 
    $sum = $row['Cost'] + $row['Tax']; 
    return $sum; 
    } 
} 
だ、捕まってしまいました私が貼り付けられた

第二の機能は、私はまだループとのいくつかの種類を行っている、間違っている、私は私に本当のsum..shameを取得することはできません

+0

どのようなエラーが表示されますか? –

+0

合計を作成する前に、合計を作成する対象を知る必要があります。それはあなたの質問から完全にはっきりしません。一般的に、 '+'を使って和を作成するので、コードは見栄えがよくなります。 – hakre

+0

ループ内でクエリを実行することはお勧めできません。すべての結果を取得してループで解析する単一のクエリを作成する方がよいでしょう。それ以外にも、 '$ id' varをエスケープしてMySQLに渡す方が良いでしょう。 – entropid

答えて

6

あなたが返された後、関数が必要なので、終了します最初にすべてを合計して、すべてを集計した後にそれを返します。

public function getShippingFee(){ 
    $ids = $this->getProductID(); 
    foreach($ids as $id){ 
     $query = mysql_query("SELECT * FROM deliverycharges WHERE ProductID = $id"); 
     $row = mysql_fetch_assoc($query); 
     $sum += $row['Cost'] + $row['Tax']; 
    } 
    return $sum; 
} 
0

各ループの合計値を上書きしています。 + =

public function getShippingFee() { 
    $ids = $this->getProductID(); 
    $sum = 0; 
    foreach($ids as $id) { 
     $query = mysql_query("SELECT * FROM deliverycharges WHERE ProductID = $id"); 
     $row = mysql_fetch_assoct($query); 
     $sum += $row['Cost'] + $row['Tax']; 
    } 
    return $sum; 
} 
関連する問題