[英]Select multiple values from the same row?
我有一个脚本,我想从数据库中返回具有相同类别的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的新手,因此非常感谢您的帮助。
mysql_fetch_array
仅在一个调用使用循环中获取一行,以获取多个记录
while($row= mysql_fetch_array($results))
{
print_r($row); //returns $title from first select query
}
您必须遍历所有结果: mysql_fetch_array
返回一个结果行 ,因此您必须多次调用它:
while($row = mysql_fetch_array($results)) {
// here process ONE row
}
mysql_fetch_array
将只取一行 :如果你想获取几行, 你就必须调用mysql_fetch_array
几次 -在一个循环中,一般。
举几个例子,您可以看一下它的手册页 。 但是,在您的情况下,您可能需要使用如下所示的内容:
$results = mysql_query("SELECT Title FROM GameData
WHERE Category='...' LIMIT 5 ");
while ($row = mysql_fetch_array($results, MYSQL_ASSOC)) {
// work with $row['Title']
}
mysql_fetch_array仅返回一行,您将不得不遍历这些行
请参见以下示例: http : //php.net/manual/en/function.mysql-fetch-array.php
您应该使用以下查询来使事情变得正确。
SELECT `Title` FROM GameData
LEFT JOIN
Category ON Category.Id = GameData.Category
WHERE Category.Title = "$title" LIMIT 5
我假设类别具有列ID。
我建议您学习JOINS 。
此外,您可能想将Category重命名为Category_Id,并使用大小写字母,以便Category变为category_id 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.