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