内联接查询不起作用?

时间:2014-02-20 05:46:43

标签: php

我有两个表,一个是订单,第二个是项目和一个公共列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;
 }

4 个答案:

答案 0 :(得分:3)

每次在循环中都会覆盖变量&因此,您只获得最后一条记录,所以只需更改,

$arr=$row;

$arr[]=$row;

答案 1 :(得分:0)

在迭代中将数组设置为当前$row。试试这个:

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

然后你可以这样迭代你的数组:

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

答案 2 :(得分:-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);

答案 3 :(得分:-1)

您必须将结果存储在array中。您可以使用

 $arr[]=$row;

而不是

$arr=$row;