0

对不起,可能在某个地方会有我的问题的答案,但我正在寻找解决这个问题的几个小时:这是代码:

    <?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

4

3 回答 3

3

小心,desc是一个 SQL 关键字!因此,您的查询可能无法编译。

于 2012-12-17T19:58:13.690 回答
1

“desc”是 MySQL 的保留字,您应该只更改数据库中的列名。无论如何,您的方法根本不是随机的,一旦您的 id 中有一个“漏洞”(当您删除一个成员时),它就会失败。

看看 MySQL “ORDER BY RAND()”

$data = mysql_query("SELECT description FROM fq_questions ORDER BY RAND() LIMIT 1");
于 2012-12-17T20:01:33.543 回答
0

您使用mysql_fetch_row()which 返回一个数值数组。然后,您尝试访问名为“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

于 2012-12-17T20:03:26.593 回答