伯爵错了?

时间:2013-08-12 16:56:35

标签: php mysql

我有一个SQL查询:

function players_check() {
    $result3 = mysql_query("SELECT COUNT(`player_id`) FROM `players` WHERE `user_id`=".$_SESSION['user_id']);
    if ($result3 <= 25) {
        fill_team();
    } else {
        echo 'something else';
    }
}

它的问题在于,尽管事实上有超过25个(通过很长时间的测试)结果,它不会停止和回声,而是继续增加越来越多。 fill_team()函数如下所示:

function fill_team() {
    $i = 1;
    while ($i <= 25) {
        $first_name = first_name();
        $last_name = second_name();
        echo "<br>";
        $add_names = mysql_query("INSERT INTO `players` (`first_name`, `last_name`, `user_id`) VALUES ('$first_name', '$last_name',  '{$_SESSION['user_id']}')");
        $i++;
    }
}

我尝试过使用这些数字,但似乎并没有太大差别。我知道这是一个独特的问题,但任何建议都非常感谢!

1 个答案:

答案 0 :(得分:2)

$result3是一个Mysql结果资源,而不是计数结果。必须先获取包含计数值的行,然后才能访问该行。

function players_check() {
    $result3 = mysql_query("SELECT COUNT(`player_id`) FROM `players` WHERE `user_id`=".$_SESSION['user_id']);
    $res = mysql_fetch_assoc($result3); // fetch the row
    if ($res[0] <= 25){ // compare the counted value
        fill_team();
    } else {
        echo 'something else';
    }
}