2013-06-05 47 views
0

基本上我試圖建立一個對象,重複查詢中的值到鍵中。對象和PHP

$obj = new stdClass(); 
    $obj->Product = (object) array("Name" => "", "Month"=> "", "Price" =>""); 
    $obj->Totals = 0.00; 

    $r=$shop->get_all_products(0); 
    while(mysql_num_rows($r) && $row=mysql_fetch_array($r)) 
    { 
    for ($i=$startMonth; $i<=$endMonth; $i++) 
    { 
     $thisDate=date("F", mktime(0, 0, 0, $i, 10)); 

     $r1=$reports->get_sales_by_month($i,$row['product_id']); 
     while(mysql_num_rows($r1) && $row1=mysql_fetch_array($r1)) 
     { 
      $totSales=$totSales + $row1['total_price']; 
      $obj->Product->Name=$row['product_name']; 
      $obj->Product->Month=$thisDate; 
      $obj->Product->Price=$row1['total_price']; 
      $obj->Totals=$totSales; 
     } 
    } 
    } 

當我做var_dump($obj)時,我只得到查詢中的最後一條記錄。我想讓對象包含所有記錄。

+4

你過寫作'$ obj'的價值觀每次循環運行時 - 您都需要使用不同的名稱('Name1'等),或者在while循環中移動對象實例化代碼,並以這種方式生成一個對象數組。 – andrewsi

+0

也使用'mysql_ *'函數集已過時 - 您應該查看使用'mysqli'或'pdo'對象。 – StampyCode

+0

[**請不要在新代碼**中使用'mysql_ *'函數](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 –

回答

2

產品屬性需要,如果你希望它包含多個值是一個數組...

試試這個:

$obj = new stdClass(); 
$obj->Product = array(); 
$obj->Totals = 0.00; 

$r=$shop->get_all_products(0); 
while(mysql_num_rows($r) && $row=mysql_fetch_array($r)) 
{ 
for ($i=$startMonth; $i<=$endMonth; $i++) 
{ 
    $thisDate=date("F", mktime(0, 0, 0, $i, 10)); 

    $r1=$reports->get_sales_by_month($i,$row['product_id']); 
    while(mysql_num_rows($r1) && $row1=mysql_fetch_array($r1)) 
    { 
     $totSales=$totSales + $row1['total_price']; 
     $obj->Product[] = (object)array("Name"=>$row['product_name'], "Month"=>$thisDate, "Price"=>$row1['total_price']); 
     $obj->Totals=$totSales; 
    } 
} 
} 
+0

不,忘記了;我讀了你的其他代碼:) – andrewsi

+0

nope ... totals是每個產品的價格屬性的累積 – Orangepill

+0

所以我注意到了。我可以閱讀PHP代碼,我發誓! :D – andrewsi