MySQL возвращает только одну строку - PullRequest
4 голосов
/ 07 декабря 2010

У меня есть этот простой код 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 работает отлично.

Ответы [ 5 ]

7 голосов
/ 07 декабря 2010
$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.
2 голосов
/ 07 декабря 2010

В качестве документации http://php.net/manual/en/function.mysql-fetch-assoc.php говорится:

mysql_fetch_assoc — Fetch a result row as an associative array

Так что, если вы хотите перебрать результат, вы должны использовать цикл, например ::1006

while ($row = mysql_fetch_assoc($result)) {
    echo $row["title"];
    echo $row["url_title"];       
}
2 голосов
/ 07 декабря 2010

Правильно, вы не получаете результаты должным образом.

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;
}
1 голос
/ 07 декабря 2010

метод fetch_assoc () возвращает одну строку, вам нужно выполнить цикл с ней

0 голосов
/ 15 февраля 2018

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...