0

わかりましたので、私のクエリは次のとおりです。

select distinct `rate_id`, `p_id`, p_rate from shipping_rates inner join products_to_categories ptc inner join customers_basket cb on ptc.products_id = cb.products_id where cb.customers_id='1' and p_status = '1' and p_free = '0' group by p_id

返す

rate_id   p_id  p_rate

1       1        10.00


2       22       11.00

これは私が欲しいものですが、それを配列に追加すると

 $p_rate[] = $sInfo->p_rate;
 $rate = array_sum($p_rate); 

これは、本来あるべき 21.00 ではなく 10.00 を返します

ところで、ここに objectInfo クラスの私のコードがあります

    function objectInfo($object_array) {
      reset($object_array);
      while (list($key, $value) = each($object_array)) {
        $this->$key = tep_db_prepare_input($value);
      }
    }
  }
}

そして、すぐ下のコードは

 $sRate = tep_db_fetch_array($status_query); 
  if ($sRate !=''){//error checking for empty query
      $sInfo = new objectInfo($sRate);
   }

trp_db_fetch_array() は mysql_fetch_array を呼び出す単なる関数です

4

3 に答える 3

0

$sInfo には 1 行しか含まれていません。最初に結果セット全体をフェッチする必要があります。

ネイティブのphp関数ではなく、フレームワークを使用しているようです。このため、それを行うために使用されるコードを提供することはできません。

結果セットを取得したら、次を使用します。

foreach($sInfoTable as $sInfo){
    $p_rate[] = $sInfo->p_rate;
}
$rate = array_sum($p_rate); 
于 2013-08-28T21:52:12.017 に答える