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+ строк в таблице, и работа SQL в PhpMyAdmin работает отлично.

 $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 () возвращает одну строку, вам нужно зацикливать с ней