查询结果是$resul,已经显示在表格中了。
(表格第一列是复选框,value值已经绑定到$result中每一条记录中的主键)
我选择一条记录后,点击按钮,可以获得选中记录的主键($vaule)
现在想根据主键,获得选中行,以下方法报错。报错信息为:Warning: mysqli_result::fetch_row() [mysqli-result.fetch-row]: Couldn't fetch mysqli_result in  on line 734
报错的行为:for(;$row = $array->fetch_row();){ for(;$row = $result->fetch_row();){
  
     if($row[0]==$vaule)
      return $row;
  }

解决方案 »

  1.   

    应该sql语句有问题.
    echo $sql;出来看一下.
    可能出错的地方是编辑的时候,并没有得到复选框的值.
      

  2.   

    已经查出来,并显示在表格中了。
    现在是选中一条后,点按钮,获取选中记录的row时出错的。
    (之前一直用的是java,不知道php是不是可以这样弄?)
      

  3.   


    已经查出来,并显示在表格中了。 
    现在是选中一条后,点按钮,获取选中记录的row时出错的。 
    复选框里的值也能拿到。
    (之前一直用的是java,不知道php是不是可以这样弄?)
      

  4.   

    把$row = $result->fetch_row()这个代码放到for的外面试试
      

  5.   

    明显是结果集无效,
    所以就是拼凑成的$sql语句不正确,或者没有查询到记录.
      

  6.   

    报的错不就是说结果集有问题么。先检查SQL语句吧!
      

  7.   

    结果集没错,已经显示在表格中了。
    而且结果集显示在表格中的代码,也是用for(;$row = $result->fetch_row();)这个语句来循环填入的。郁闷了
      

  8.   

    显然你没有明白所指何处.
    假设你一个页面显示20条记录,
    1 你显示表格的sql应该这样写. select * from xxx limit 0,20
    2 我选择一条记录后,点击按钮,可以获得选中记录的主键($vaule) 
    现在想根据主键,获得选中行. 这个sql语句要这样写 select * from xxx where primary_id = xxx所以,你能列出来,不代表你选中后再次查询的结果集正确.
      

  9.   


    哦,抱歉,看来是这里误会了。
    可以不做查询,而直接把第一次查询$result传过去,通过判断主键是否相等,来返回对于的$row吗?
    (感觉是不可以了..)
    for(;$row = $result->fetch_row();){
          
            if($row[0]==$vaule)
                return $row;
      }
      

  10.   

    是不可以的.
    $result属于resource类型,
    不能被序列化,
    不可能被传过去的.
      

  11.   

    终于知道原因了,谢谢了!
    再问下
    除了再做查询,还有其他的解决方法吗?PS:JAVA是可以这样的,看来不能惯性思维。