这是PHP还是MySQL的错误?

Cha*_*had 0 php mysql

$allUsersResult = mysql_query("SELECT * FROM users");

// the purpose of this line was to grab the first row for use 
// separately in a different area than the while loop
$user = mysql_fetch_assoc($allUsersResult);


while($users = mysql_fetch_assoc($allUsersResult)){

 // the first row is not available here

}
Run Code Online (Sandbox Code Playgroud)

那么这是一个错误还是我做错了我的错?

PS:这只是举例.我没有像这样使用$ user和while循环,它们在脚本的不同位置使用.

jas*_*bar 13

你需要放弃

$allUsers = mysql_fetch_assoc($allUsersResult);
Run Code Online (Sandbox Code Playgroud)

这是你的第一个结果行.

回答新问题:不.这不是PHP的设计缺陷.这是程序设计中的一个缺陷.你需要重新思考你在做什么.

为什么需要分离出第一个值?您是否一直依赖它来自您的桌子中的特定行?如果更改表模式,很可能会使用其他排序顺序将结果返回给您.

也许如果你告诉我们你想要做什么,我们可以给你一些设计建议.

  • 不要追求开始,这只是令人困惑.相反,只需要对循环外的第一行做任何你需要做的事情. (4认同)

pok*_*oke 10

这是你的错.通过$allUsers = mysql_fetch_assoc($allUsersResult);先调用,您已经从结果集中获取第一行.所以只需删除该行,它应该按预期工作.

编辑:评论中的每个请求.

$user = mysql_fetch_assoc($allUsersResult);
if ( $user ) // check if we actually have a result
{
    // do something special with first $user

    do
    {
        // do the general stuff with user
    }
    while( $user = mysql_fetch_assoc($allUsersResult) );
}
Run Code Online (Sandbox Code Playgroud)