1

我正在尝试使用 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

4 回答 4

2

改变

 $num=mysql_numrows($comments);

$num=mysql_num_rows($comments);

正确的语法mysql_num_rows不是mysql_numrows

于 2012-12-17T11:00:21.830 回答
1

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

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

修复以上问题!

于 2012-12-17T11:01:21.513 回答
0

数据库中没有记录。

$UseComment = "插入评论值 ('$comment')"; 是错的。

将其更改为

$UseComment = "INSERT INTO comments(comment) VALUES ('$comment')";

谢谢。

于 2012-12-17T11:50:03.087 回答
0

首先,您可以检查这个问题。关于您的代码,您在导致错误的第 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”或其他任何内容。

于 2012-12-17T11:04:12.297 回答