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()返回一行,你需要循环它