从同一行中选择多个值?

时间:2011-02-26 17:19:33

标签: php mysql sql

我有一个脚本,我想从数据库中返回5个具有相同类别的值,但它只返回一个。有什么想法吗?

这是脚本:

 $result = mysql_query("SELECT Category FROM GameData
        WHERE Title=\"$title\" ");
//returns category to search in next select
    $row= mysql_fetch_array($result);
    $results = mysql_query("SELECT Title FROM GameData
    WHERE Category=\"$row[0]\" LIMIT 5 ");
    $rows= mysql_fetch_array($results);
    print_r($rows); //returns $title from first select query

我是数据库和MySQL的新手,所以任何帮助都会非常感激。

5 个答案:

答案 0 :(得分:4)

mysql_fetch_array只需在一个调用使用循环中获取一行以获取多个记录

while($row= mysql_fetch_array($results))
{

    print_r($row); //returns $title from first select query
}

答案 1 :(得分:3)

您必须遍历所有结果:mysql_fetch_array返回一个结果行,因此您必须多次调用它:

while($row = mysql_fetch_array($results)) {
    // here process ONE row
}

答案 2 :(得分:1)

mysql_fetch_array只会获取一个行:如果您想要获取多行,则需要多次调用mysql_fetch_array - - 通常在循环中。


举几个例子,你可以看看its manual page;但是,在你的情况下,你可能想要使用这样的东西:

$results = mysql_query("SELECT Title FROM GameData
    WHERE Category='...' LIMIT 5 ");
while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) {
    // work with $row['Title']
}

答案 3 :(得分:1)

mysql_fetch_array只返回一行,你必须遍历行

请参阅示例:http://php.net/manual/en/function.mysql-fetch-array.php

答案 4 :(得分:1)

您应该使用以下查询以使事情正确。

 SELECT `Title` FROM GameData 
 LEFT JOIN
 Category ON Category.Id = GameData.Category
 WHERE Category.Title = "$title" LIMIT 5

我认为Category有列Id。
我建议你了解JOINS
此外,您可能希望将类别重命名为Category_Id,并删除字母大小写,以便类别变为 category_id