[英]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.