我正在尝试将保存在我的数据库中的值输出到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标签内的代码。所以我的问题为什么我的回声不起作用?
答案 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>