首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql_fetch_array仅返回一行

问mysql_fetch_array仅返回一行
EN

Stack Overflow用户
提问于 2011-08-10 02:49:20
回答 3查看 42.6K关注 0票数 2

好的,我有以下代码:

代码语言:javascript
复制
$array = mysql_query("SELECT artist FROM directory WHERE artist LIKE 'a%' 
        OR artist LIKE 'b%' 
        OR artist LIKE 'c%'");
    $array_result= mysql_fetch_array($array);

然后,当我尝试回显内容时,我只能回显输出第一项的$array_result[0];,但是如果我回显$array_result[1];,我得到一个未定义的偏移量。

但是,如果我通过PHPMyAdmin运行上面的查询,它将返回一个包含10个项目的列表。为什么这不能被识别为一个10项的数组,允许我回显0-9?

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-10 02:51:30

这是因为该数组表示返回结果集中的一行。您需要再次执行mysql_fetch_array() function以获取下一条记录。示例:

代码语言:javascript
复制
while($data = mysql_fetch_array($array)) {
  //will output all data on each loop.
  var_dump($data);
}
票数 19
EN

Stack Overflow用户

发布于 2011-08-10 02:58:45

您应该使用while来获取所有数据。

代码语言:javascript
复制
$array_result = array();
while ($row = mysql_fetch_array($array, MYSQL_NUM)) {
    $array_result[] = $row;
}
echo $array_result[4];
票数 4
EN

Stack Overflow用户

发布于 2011-08-10 03:03:25

我更喜欢使用下面的代码:

代码语言:javascript
复制
$query  = "SELECT artist FROM directory WHERE artist LIKE 'a%' 
        OR artist LIKE 'b%' 
        OR artist LIKE 'c%'";           
$result = mysql_query($query) or die(mysql_error());


while(list($artist) = mysql_fetch_array($result))
{
echo $artist;
}

如果向查询添加更多字段,只需向列表($artist、$field1、$field2等)添加更多变量

我希望它能有所帮助:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7001320

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档