MySQL PHP SELECT抛出错误?

时间:2012-12-17 10:57:20

标签: php mysql database select comments

我正在尝试使用PHP和MySQL在我手工制作的网站上发表评论部分。我已将评论存储在我的数据库中,但当我尝试选择它们时,我的网站会抛出此错误,

  

mysql_result()[function.mysql-result]:无法跳转到第16行/home/a9210109/public_html/comments.php中MySQL结果索引9的第0行

到目前为止,我的代码位于

之下
    <?php
    $comment = $_POST['comment'];
    $mysql_host = "";
    $mysql_database = "";
    $mysql_user = "";
    $mysql_password = "";
    mysql_connect($mysql_host,$mysql_user,$mysql_password);
    @mysql_select_db($mysql_database) or die( "Unable to select database");
    $CreateTable = "CREATE TABLE comments (comment VARCHAR(255), time VARCHAR(255));";
    mysql_query($CreateTable);
    $UseComment = "INSERT INTO comments VALUES ('$comment')";
    mysql_query($UseComment);
    $SelectComments = "SELECT * FROM comments";
    $comments = mysql_query($SelectComments);
    $num=mysql_numrows($comments);
    $variable=mysql_result($comments,$i,"comment");
    mysql_close();
    ?>
    <a href="#" onclick="toggle_visibility('hidden');">Show/Hide Comments</a>
    <?php
    $i=0;
    while ($i < $num) {
    $comment=mysql_result($comments,$i,"comment");
    echo "<div id='hidden' style='display:none'><h3>$comment</h3></div>";
    $i++;
    }
    ?>

4 个答案:

答案 0 :(得分:2)

更改

 $num=mysql_numrows($comments);

$num=mysql_num_rows($comments);

正确的语法是mysql_num_rows而非mysql_numrows

答案 1 :(得分:1)

$ i未在第一个php部分中设置:

$variable=mysql_result($comments,$i,"comment");

修正以上!

答案 2 :(得分:0)

首先,您可以查看this question 关于您的代码,您在导致错误的第16行之前没有$i

$variable=mysql_result($comments,$i,"comment");

您应该在发出mysql_result之前检查是否有任何结果:

$SelectComments = "SELECT * FROM comments";
$comments = mysql_query($SelectComments);
if( $num = mysql_num_rows($comments) ){
    $variable = mysql_result($comments, 0, "comment");
}

我个人会写一个COUNT个查询来获得评论总数:

$sql = 'SELECT COUNT(*) total FROM comments';
$comments = mysql_query($sql);
$row = mysql_fetch_assoc($comments);
$totalComments = $row['total'];

在这种情况下,您无需使用mysql_num_rows()进行检查,因为COUNT查询肯定会返回一个结果“0”或其他任何内容。

答案 3 :(得分:0)

数据库中没有记录。

$ UseComment =“INSERT INTO comments VALUES('$ comment')”;是错的。

将其更改为

$ UseComment =“INSERT INTO评论(评论)VALUES('$ comment')”;

感谢。