繁体   English   中英

MySQL仅返回一行

[英]MySQL returns only one row

我有这个简单的PHP代码:

$query = mysql_query("SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5");
    $query2 = mysql_fetch_assoc($quer);
    print_r($query2);

它仅返回以下内容:

Array ( [title] => Kill Bill Vol 1. [url_title] => kill_bill_vol_1 )

我的表中有3500多行,并且在PhpMyAdmin中运行SQL效果很好。

$query = mysql_query("SELECT `title`,
                             `url_title`
                        FROM `fastsearch`
                       WHERE `tags`
                            LIKE '%$q%'
                       LIMIT 5");

while ($row = mysql_fetch_assoc($query)) {
    print_r($row);
}
  • 您在示例中拼错了$query
  • mysql_fetch_assoc()每次被调用时都会返回一行,而在行外时则返回FALSE 通过在条件中为其分配变量来利用它,以发挥您的优势。 while()循环中, $row将是当前行。

是的,您没有正确获取结果。

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

$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;
}

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

mysql_fetch_assoc — Fetch a result row as an associative array

因此,如果要遍历结果,则必须使用循环,例如:

while ($row = mysql_fetch_assoc($result)) {
    echo $row["title"];
    echo $row["url_title"];       
}

fetch_assoc()方法返回一行,您需要对其进行循环

mysqli_fetch_assoc()是获取多个记录并通过print_r()显示的函数。

$query = "SELECT `title`, `url_title` FROM `fastsearch` WHERE `tags` LIKE '%$q%' LIMIT 5";
$result = mysqli_query($conn,$query);
while(null ! == ($query = mysqli_fetch_assoc($result))){
     print_r($query);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM