2012-12-17 50 views
1

我想使用PHP和MySQL在我手工制作的网站上发表评论。我有存储在我的数据库中的意见,但是当我试图将其选中我的网站抛出了这个错误,MySQL PHP SELECT抛出一个错误?

mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 9 in /home/a9210109/public_html/comments.php on line 16

到目前为止我的代码是低于

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

谢谢,那个被注意到 – orano10000

回答

2

变化

$num=mysql_numrows($comments); 

$num=mysql_num_rows($comments); 

E右键语法mysql_num_rowsmysql_numrows

+0

非常感谢你 – orano10000

+0

@ user1909695如果你发现有用的答案比标记正确,那么其他用户可以参考它。 –

1

$我是不是在第一个PHP部分设置:

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

解决上述!

+0

等待:我应该删除“评论”,因为另一个用户刚刚告诉我这个吗? – orano10000

0

首先,您可以检查this question

$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"); 
} 

我会亲自
与您的代码至于,你没有造成错误的行16之前有$i写COUNT查询以获得总评论数:

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

在这种情况下,您不需要t o检查mysql_num_rows(),因为COUNT查询肯定会返回一个结果“0”或其他。

+0

好的,谢谢,我应该删除“评论”还是简单地定义$ i之前? – orano10000

+0

我应该怎么做,只需将$ i定义为0? – orano10000

+0

@ user1909695,请检查我的更新答案。 – Sithu

0

数据库中没有记录。

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

更改它作为

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

谢谢。