我正在尝试从我从SQL查询中获取的php数组创建一个html列表,但无论我得到什么,我都会得到非常奇怪的结果。
$dbf = mysql_query("SELECT * FROM testdb") or die(mysql_error());
$info= mysql_fetch_array($dbf);
foreach($info as $x)
{
echo '<li>' . $x['name'] . '</li>';
}
我没有获取数据库中的名称,而是获得以下值
我可能做错了什么?
答案 0 :(得分:5)
在您的代码中,您只执行一次mysql_fetch_array($dbf)
功能。这只会从结果集中选择第一行。您需要做的是将此函数作为while
循环的条件发送。请考虑对您的代码进行以下更改:
$dbf = mysql_query("SELECT * FROM testdb") or die(mysql_error());
echo '<ul>';
while( $info = mysql_fetch_array( $dbf, MYSQL_ASSOC ) )
{
echo '<li>' . $info[ 'name' ] . '</li>';
}
echo '</ul>';
在上面的代码中,您的while
循环遍历您的SELECT
查询生成的每个元组。这应该可以解决你的问题。
答案 1 :(得分:1)
问题是 mysql_fetch_array()仅从结果集中获取第一行。
你需要在循环中执行mysql_fetch_array。
while($info= mysql_fetch_array($dbf))
{
echo '<li>' . $info['name'] . '</li>';
}