我有这个简单的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非常有效。
答案 0 :(得分:7)
$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
将是当前行。答案 1 :(得分:2)
是的,你没有正确地获取结果。
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;
}
答案 2 :(得分:2)
正如文档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"];
}
答案 3 :(得分:1)
方法fetch_assoc()返回一行,需要用它循环
答案 4 :(得分:0)
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);
}