我正在尝试使用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++;
}
?>
答案 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')”;
感谢。