我正在尝试运行这个程序,但是出乎意料的是mysql_fetch_assoc()函数只返回第一个条目,即使有很多条目,并且foreach循环错误中的更多信息表示非法'参数'用户名被给出
<?php
$dbc=mysql_connect("localhost","root","nanu");
mysql_select_db('users');
$getQuery='SELECT * FROM userst ORDER BY username';
$result=mysql_query($getQuery,$dbc);
$rel=mysql_fetch_assoc($result);
echo'<pre>'.print_r($rel).'<pre/>';
echo"<br/>".$rel['username']."<br/>";
foreach($rel as $Query[]){
echo $Query['username'];
}
?>
答案 0 :(得分:5)
mysql_fetch_assoc()
始终返回下一行或false。你应该循环调用它:
while ($rel = mysql_fetch_assoc($result)) {...}
答案 1 :(得分:2)
您正在返回一个行数组,您必须遍历每一行
while ($rel = mysql_fetch_assoc($result))
{
echo'<pre>'.print_r($rel).'<pre/>';
echo"<br/>".$rel['username']."<br/>";
foreach($rel as $Query[]){ //don't think you need this foreach loop
echo $Query['username'];
}
}
答案 2 :(得分:1)
$rel=mysql_fetch_assoc($result);
一次只能获取一行,具体取决于资源指针。
一旦使用该语句,此指针将增加,因此将它与循环语句一起使用将为您提供所有行。
while ($rel = mysql_fetch_assoc($result)) {
echo $rel['username'];
}
请尝试更安全的API,例如mysqli
或PDO
而不是mysql_*
API。 他们已被弃用。
http://php.net/manual/en/mysqlinfo.api.choosing.php
建议不要将旧的mysql扩展用于新开发,因为它已从PHP 5.5.0开始被弃用,并且将来会被删除。
答案 3 :(得分:0)
mysql_fetch_assoc
返回当前指针的行。您需要将它用作循环的一部分,如PHP文档所示:
while ($row = $result->fetch_assoc()) {
答案 4 :(得分:0)
while ($row = mysql_fetch_assoc($result)) {
echo $row['username'];
}