为什么这不可能?有什么方法可以让解析不是空的吗?
$sqlAllInfo = "SELECT item1, item2 FROM example";
$resAllInfo = mysql_query($sqlAllInfo);
while($rowAllInfo = mysql_fetch_assoc($resAllInfo)){
echo $rowAllInfo['item1'];
}
$rowAllInfo = mysql_fetch_assoc($resAllInfo);
echo $rowAllinfo['item2'];
感谢您的时间
答案 0 :(得分:2)
不,在while循环后结果将始终为空,因为while循环从结果资源中提取所有值。
while循环继续循环,同时仍有信息要提取,并将在完成时完成它是空的或发生错误时
如果你想获得最后一个条目
$ rowAllInfo仍然包含最后一个条目;)
答案 1 :(得分:2)
您正在使用while
循环遍历结果集,直到不再有结果。当while
返回mysql_fetch_assoc
时,false
循环退出,因为没有更多结果。再次呼叫mysql_fetch_assoc
仍然意味着没有更多结果。
答案 2 :(得分:2)
这一行:
while($rowAllInfo = mysql_fetch_assoc($resAllInfo)){
为rowAllInfo
分配一个新值,然后检查它是否仍为“true”-ish(因为PHP可以是“true”;-))
现在,在获取最后一行之后,mysql_fetch_assoc()
将返回false,然后将其分配给$ rowAllInfo。由于$ rowAllInfo现在为“false”,循环将不再执行,但是 - 看 - 已经太晚了!您的变量已经分配了值false
。
即便如此,您再次致电mysql_fetch_assoc()
。但是,由于您已经获取了循环中的所有行,因此不再有行,并且$rowAllInfo
再次设置为“false”。
所以,无论你想做什么 - 这可能不是你的方式。实现我理解您尝试做的一个常用方法如下:
$allRows = array();
while( $row = mysql_fetch_assoc($res) ) {
$allRows[] = $row;
}
// show the array we just created...
echo print_r( $arrRows, 1 );