2014-02-20 81 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;