回显fetch_assoc的结果

时间:2011-11-14 12:08:53

标签: php mysql

这是我的代码:

<?php 
mysql_connect("localhost","*****","********") or die("Can't connect to DB");
mysql_select_db("kroltan_main") or die("Can't select to DB");
$result = mysql_query("SELECT * FROM comments") or die("Can't fetch data");
if(mysql_num_rows($result) > 0){
    $info = mysql_fetch_assoc($result);
    while($row = mysql_fetch_assoc($result)){
        echo "<div class='t_post'>";
        echo "<div class='t_message'>" .$row["comment"]. "</div>";
        echo "<div class='t_info'>" .$row["name"]. "</div>";
        echo "</div>";
    }
}
?>

我正在尝试生成一个内部有两个div的容器div,一个显示MySQL行的“name”值,另一个显示“comment”值。但是当我测试它时,没有内容(没有任何回应)。我的MySQL表上有内容,所以这是我的代码的问题。 http://kroltan.eliti.com.br/?/=Talk。该页面上有一些信息,但这是无关紧要的。

3 个答案:

答案 0 :(得分:1)

删除其中包含$info = mysql_fetch_assoc($result);的行。应该工作(要求你的查询是正确的)

答案 1 :(得分:0)

我已经整理了代码,以下内容应该可以正常工作:

<?php 
mysql_connect("localhost","*****","********") or die("Can't connect to DB");
mysql_select_db("kroltan_main") or die("Can't select to DB");
$result = mysql_query("SELECT name,comment FROM comments") or die("Can't fetch data");

while($row = mysql_fetch_assoc($result)){
?>
<div class="t_post">
    <div class="t_message"><?php echo $row["comment"] ?></div>
    <div class="t_info"><?php echo $row["name"] ?></div>
</div>
<?php
}
?>

我所做的改变是:

  • 多余$info = mysql_fetch_assoc()已移除
  • 使用内联echo()调用使标记更具可读性
  • 仅从查询中返回您需要的列,而不是SELECT *

答案 2 :(得分:0)

// connect

$result = mysql_query('SELECT * FROM `comments`') or die("Can't fetch data"));

if(mysql_num_rows($result) > 0) {
    while($row = mysql_fetch_assoc($result)) {
        // display data
    }
}

这应该有用!

应在while循环条件中调用mysql_fetch_assoc函数。如果你在条件之外调用mysql_fetch_assoc,它将只返回第一行。