2010-12-07 5 views
3

У меня есть этот простой PHP код:MySQL возвращает только одну строку

$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 работ в совершенстве.

ответ

7
$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 будет текущей строкой.
+0

Я принимаю ваш ответ в течение 3 минут, когда она позволяет мне. Я использовал foreach, но я не знаю, как это сделать, пока: – wintercounter 2010-12-07 00:12:51

+0

foreach (mysql_fetch_assoc ($ quer) как $ row => $ item) { $ arrResults [$ row] = $ item; } Мне нужно это, потому что я использую данные JSON с функцией json_encode. – wintercounter 2010-12-07 00:13:42

1

метод FETCH_ASSOC() возвращает одну строку, вы должны цикла с его

2

Да, вы не извлечение результатов правильно.

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; 
} 
2

В документации 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"];  
} 
0

mysqli_fetch_assoc() является функцией, которая Fetching мультипликатора записи и отображения через 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); 
} 
Смежные вопросы