-1

我有一个 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++;
    }
}

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

4

1 回答 1

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';
    }
}
于 2013-08-12T17:17:12.130 回答