-4

为什么这是不可能的?有什么办法可以让resolut不为空吗?

$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'];

谢谢你的时间

4

3 回答 3

2

这一行:

while($rowAllInfo = mysql_fetch_assoc($resAllInfo)){

分配一个新值rowAllInfo,然后检查它是否仍然是“真”-ish(因为 PHP 可以是“真”;-))

现在,在获取最后一行之后,mysql_fetch_assoc()将返回 false,然后将其分配给 $rowAllInfo。由于 $rowAllInfo 现在为“假”,循环将不再执行,但是 - 看 - 为时已晚!您的变量已经具有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 );
于 2012-05-20T21:49:38.277 回答
2

不,在您的 while 循环之后结果将始终为空,因为 while 循环从结果资源中提取所有值..
当仍有信息要提取时,while 循环将继续循环,并在它为空或出现错误时完成如果您要获取最后一个条目,则会发生

$rowAllInfo 仍然包含最后一个条目;)

于 2012-05-20T21:43:09.370 回答
2

您正在使用 循环遍历结果集,while 直到没有更多结果为止。返回while时循环退出,因为没有更多结果。再次调用仍然意味着没有更多结果。mysql_fetch_assocfalsemysql_fetch_assoc

于 2012-05-20T21:43:27.700 回答