我有一个脚本,我想从数据库中返回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的新手,所以任何帮助都会非常感激。
答案 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 。