2014-02-20 116 views
-2

我有兩個表,一個是順序,第二個是項目和一個公共列order_no,所以我使用內部連接查詢來獲取基於order_no的數據,但只有最後匹配的記錄被提取,那麼任何人都可以告訴我什麼是在我的查詢中的問題。內部連接查詢不起作用?

$q="SELECT * FROM `items` INNER JOIN `order` ON items.order_no=order.order_no"; 
$result1= mysql_query($q,$this->_current_connection); 
if(mysql_num_rows($result1)>0){ 
while($row=mysql_fetch_object($result1)) 
{ 
    $arr=$row; 
} 

回答

3

您將要覆蓋每一次你的變量在一個循環&因此你只得到了最後一個記錄,所以才改變,

$arr=$row; 

$arr[]=$row; 
0

你設置數組到迭代中的當前$row。試試這個:

$arr = array(); 
while(...) 
{ 
    array_push($arr, $row); 
} 

,那麼你可以遍歷您的陣列,像這樣:

foreach($arr as $item) 
{ 
    ... 
} 
-1

你需要保持$ ARR作爲數組不只是簡單的變量。試試這個,

$q="SELECT * FROM `items` INNER JOIN `order` ON items.order_no=order.order_no"; 
    $result1= mysql_query($q,$this->_current_connection); 
    $arr = array(); 
    if(mysql_num_rows($result1)>0){ 
     while($row=mysql_fetch_object($result1)) 
     { 
      $arr[]=$row; 

     } 
    print_r($arr); 
-1

你必須存儲您的結果array.so可以使用

$arr[]=$row; 

,而不是

$arr=$row;