为什么循环出来的数组 输出的时候 每个数组的值都是一样的,望高手和路过的都能指点一下。$qryhis = "select * from bid_account ba left join  user_manage r on ba.user_id=r.id where ba.product_id=$aucid  order by ba.id desc limit 0,10";
$reshis = mysql_query($qryhis) or die(mysql_error());
$total  = mysql_num_rows($reshis);
        $obj = mysql_fetch_object($reshis);

for($i=0;$i<$total;$i++)
{
          $arr[$i] = array('bprice'=>$obj->bidding_price,'username'=>$obj->user_name.$i,'bidtype'=>substr($obj->shijian,10)); 
}
       echo json_encode($arr); 以下是通过ajax输出的代码:
auctionhisid = "<?=$obj_pro->id !=""?$obj_pro->id :"";?>";
getStatusUrl3 = "updatehistory.php?aucid_new="+auctionhisid;
$.ajax(
{
url: getStatusUrl3,
dataType: "json", success: function(data)
{  
                              var i=0;
  while(i<data.length)
  {
document.getElementById("bid_price_" + i).innerHTML = data[i].bprice;
document.getElementById("bid_user_name_" + i).innerHTML = data[i].username;
document.getElementById("bid_type_" + i).innerHTML = data[i].bidtype;
  i++;
  }
 
},
error: function(XMLResponse){
//alert(XMLResponse.responseText);
}
    });   },1000)

解决方案 »

  1.   

    我想可能是 mysql_fetch_object() 的原因,你只是调用了一次,因此只是返回一行记录
      

  2.   

    $qryhis = "select * from bid_account ba left join user_manage r on ba.user_id=r.id where ba.product_id=$aucid order by ba.id desc limit 0,10";
    $reshis = mysql_query($qryhis) or die(mysql_error());$arr = array();
    while($obj = mysql_fetch_object($reshis)) {
       $arr[] = array(
          'bprice' => $obj->bidding_price,
          'username' => $obj->username,
          'bidtype' => substr($obj->shijian,10)
       );
    }
    echo json_encode($arr);
      

  3.   

    $obj = mysql_fetch_object($reshis); 应该是你循环的条件 放外面当然就只有一条结果了 ,
      

  4.   

    你只调用了一次mysql_fetch_object,所以只会得到一条数据。