MySQL只返回一行
我有这个简单的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
。 通过在条件中为它分配一个variables来利用这一点。 在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()返回一行,你需要循环它