对不起,可能会在某个地方找到我的问题的答案,但是很长时间以来我一直在寻找解决这个问题的方法: 这是代码:
<?php
$con = mysql_connect("****","****","***");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("******", $con);
$query = "SELECT id FROM fq_questions";
$rowcnt = mysql_num_rows(mysql_query($query));
echo "Tot scenes: ".$rowcnt;
$id = rand (1,$rowcnt);
echo "<br>Id rand: ".$id."<br>";
flush();
$newquery = "SELECT question FROM fq_questions WHERE id=".$id;
$result = mysql_query($newquery);
if (!$result) {
$message = 'Invalid query: ' . mysql_error() . "\n";
$message .= 'Whole query: ' . $newquery;
die($message);
}
$row = mysql_fetch_assoc($result);
echo $row['question'];
mysql_close($con);
?>
问题是没有输出。我已尝试过所有内容,似乎是查询中的一个问题,但是有结果,它不是假的,但即使它存在,也不输出任何内容。 代码一直工作到
echo "<br>Id rand: ".$id."<br>";
然后它什么也没显示。 这是一个虚假的问题,我因此而变得疯狂。
呃,忘记了...我遇到问题的网站:http://www.freelabs.it/filmquiz/game.php
答案 0 :(得分:3)
注意,desc
是一个SQL关键字!您的查询可能因此而无法编译。
答案 1 :(得分:1)
“desc”是MySQL保留字,您只需在数据库中更改该列名即可。无论如何,你的方法根本不是随机的,只要你的id中有一个“洞”(当你删除一个成员时)它就会失败。
看看MySQL“ORDER BY RAND()”
$data = mysql_query("SELECT description FROM fq_questions ORDER BY RAND() LIMIT 1");
答案 2 :(得分:0)
您使用mysql_fetch_row()
返回数值数组。然后,您尝试访问名为“desc”的数组插槽
它不存在。 (我的猜测是,这会产生一个被抑制的错误,阻止任何输出显示,或者一个被抑制的警告,阻止该行显示之后的任何输出。)
尝试将mysql_fetch_row()
更改为mysql_fetch_assoc()
(仍处于弃用状态!),这应该可以解决。
资料来源:http://php.net/manual/en/function.mysql-fetch-row.php
并且:http://php.net/manual/en/function.mysql-fetch-assoc.php