繁体   English   中英

从同一行中选择多个值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM