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

MySQL仅返回一行
EN

Stack Overflow用户
提问于 2010-12-07 08:00:50
回答 5查看 37.1K关注 0票数 6

我有这个简单的PHP代码:

代码语言:javascript
复制
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");
    $query2 = mysql_fetch_assoc($quer);
    print_r($query2);

它只返回以下内容:

代码语言:javascript
复制
Array ( [title] => Kill Bill Vol 1. [url_title] => kill_bill_vol_1 )

我在表中有SQL行,在PhpMyAdmin中运行3500+可以很好地工作。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-12-07 08:04:38

代码语言:javascript
复制
$query = mysql_query("SELECT `title`,
                             `url_title`
                        FROM `fastsearch`
                       WHERE `tags`
                            LIKE '%$q%'
                       LIMIT 5");

while ($row = mysql_fetch_assoc($query)) {
    print_r($row);
}

在example

  • mysql_fetch_assoc()中拼写错误的
  • 每次调用$query都会返回一行,当超出行数时返回FALSE。通过在条件中为其分配一个变量来利用这一点。在while()循环中,$row将是当前行。
票数 9
EN

Stack Overflow用户

发布于 2010-12-07 08:04:28

对,您没有正确获取结果。

mysql_fetch_assoc()一次只返回一行。使用循环读取所有行。

代码语言:javascript
复制
$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");

$resultSet = array();
while ($cRecord = mysql_fetch_assoc($query)) {
  $resultSet[] = $cRecord;
}
票数 3
EN

Stack Overflow用户

发布于 2010-12-07 08:06:03

正如documentation http://php.net/manual/en/function.mysql-fetch-assoc.php所述:

代码语言:javascript
复制
mysql_fetch_assoc — Fetch a result row as an associative array

因此,如果你想迭代结果,你必须使用一个循环,例如:

代码语言:javascript
复制
while ($row = mysql_fetch_assoc($result)) {
    echo $row["title"];
    echo $row["url_title"];       
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4372197

复制
相关文章

相似问题

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