我有一个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++;
}
}
我尝试过使用这些数字,但似乎并没有太大差别。我知道这是一个独特的问题,但任何建议都非常感谢!
答案 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';
}
}