将数据库文本值输出到div中

时间:2013-12-04 16:17:13

标签: php html mysql

我正在尝试将保存在我的数据库中的值输出到div字段中,但数据似乎没有出来,有人可以向我解释原因吗?

<div>
<?php
        $host="localhost"; // Host name 
        $username="root"; // Mysql username 
        $password="root"; // Mysql password 
        $db_name="Database"; // Database name 

        mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
        mysql_select_db("$db_name")or die("cannot select DB");

        $result=mysql_query("SELECT from `posts`");
        $num=mysql_numrows($result);
        $i=0;
        while ($i < $num) {
            echo $result[$i];
            $i++;
        }
        ?>
</div>

以上是我在div标签内的代码。所以我的问题为什么我的回声不起作用?

4 个答案:

答案 0 :(得分:4)

这不是这样做的方法,你可以这样使用:

//$result=mysql_query("SELECT from `posts`"); <- this query is wrong. 
if ($result = mysql_query("SELECT * FROM posts"))
{
    $num=mysql_num_rows($result);

   while ($row = mysql_fetch_assoc($result)) {
       echo $row['key']; // <- you must set the field name of your query here
   } 
}
else // This if will show you when any query error is thrown.
{
    echo mysql_error();
}

您的原始查询错误。您可能会收到错误,因为SELECT FROM无效。您 指定字段列表,函数或*以获取表格的所有字段。

您可以使用mysql_fetch_assoc()mysql_fetch_row()mysql_fetch_array()从查询中获取收到的数据。

另外,我在查询命令中添加了if,以便在查询执行中抛出任何mysql错误。使用它你永远不会混淆这里发生的事情

希望它有所帮助。

更新:正如@SpiderLinked所说(谢谢老兄),mysql_numrows()不存在。您必须使用mysql_num_rows()来获取查询结果计数。

答案 1 :(得分:1)

"SELECT from `posts`"

不是有效的查询。

这将是:

"SELECT * FROM `posts`"

以下内容也不会从您的数据库中提取任何结果:

while ($i < $num) {
    echo $result[$i];
    $i++;
}

您需要在获取结果时循环结果:

while ($row = mysql_fetch_assoc($result)) {
    echo $row['field'];
}

答案 2 :(得分:0)

您的代码有几处错误......首先......您没有将查询结果提供给任何变量......第二...您的查询错误...第三...有...没有像mysql_numrows()这样的函数....这里是一个它应该是什么样子的例子:

<div>
  <?php
    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password="root"; // Mysql password 
    $db_name="Database"; // Database name 

    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");

    $result=mysql_query("SELECT * FROM posts") or die (mysql_error()); //added die for debugging purposes
    while ($num=mysql_fetch_array($result)) {
        echo $num['COLUMN NAME HERE!'];
    }
    ?>

另外......请在不推荐使用mysql_时停止使用...

答案 3 :(得分:0)

试试这个......

<div>
<?php
    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password="root"; // Mysql password 
    $db_name="Database"; // Database name 

    $result=mysql_query("SELECT * FROM posts");
    $num=mysql_numrows($result);
    if($num>0) {
        echo $num." rows returned";
        while ($row = mysql_fetch_assoc($result)) {
            echo $row['key'];
        }
    } else {
        echo "No Rows Returned";
    }

    ?>
</div>