我是php的新手,我有这个代码。我无法判断数据是否来自数据库。
$sql = mysql_query("SELECT id,question,date,user,numberofcomments FROM questions");
if (!$sql) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$result = mysql_fetch_row($sql);
echo '<table border="1">
<tr>
<th>Title 1</th>
<th>Title 2</th>
</tr>';
while($row = mysql_fetch_assoc($result))
{
echo '<tr>';
echo '<td class="leftpart">';
echo '<h3><a href="topic.php?id=' . $row[id] . '">' . $row['question'] . '</a><h3>';
echo '</td>';
echo '<td class="rightpart">';
echo $row['date'];
echo '</td>';
echo '</tr>';
}
我收到了这个错误。
警告:mysql_fetch_assoc()期望参数1是资源,
中给出的数组有人可以解释这个错误。我注释了while($ row ...并且没有错误,数据没有显示让我假设数据没有正确地从我的数据库中获取。我不确定这些函数究竟是如何工作的帮助文件令我困惑,所以我来到这里。
我做错了什么,我可以改变什么?
编辑:
我已连接到数据库(我已经提取了用户名和密码的信息)
答案 0 :(得分:1)
mysql_fetch_assoc()
在mysql_query()
返回的资源中传递。因此,您的电话应该是
while($row = mysql_fetch_assoc($sql))
相反,你传入的是mysql_fetch_row()
的返回值,它是一个数组或布尔值。
PS - 不推荐使用/弃用所有mysql_*
函数。你不应该使用它们。