MySQL只返回一行

时间:2010-12-07 00:00:50

标签: php 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非常有效。

5 个答案:

答案 0 :(得分: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将是当前行。

答案 1 :(得分: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 :(得分: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"];       
}

答案 3 :(得分:1)

方法fetch_assoc()返回一行,需要用它循环

答案 4 :(得分:0)

  

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