首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从我的数据库中返回数字数组,将它们用作另一个查询中的测试

问从我的数据库中返回数字数组,将它们用作另一个查询中的测试
EN

Stack Overflow用户
提问于 2009-12-30 18:50:33
回答 2查看 96关注 0票数 0

我正在努力解决一些SQL/php语法问题。

我正在试着写两个函数。

第一个将查询数据库并返回匹配特定条件的数字数组。

第二个函数将查询数据库,并使用第一个函数中的值来帮助选择我要查找的数据。

到目前为止,我对第一个函数的了解如下:

代码语言:javascript
复制
$sql = "SELECT requestee_id FROM user_relationships WHERE requester_id = '$uid' AND rtid = '13'";   
 $resulto = mysql_query($sqlo) or die(mysql_error());
  while($rowo = mysql_fetch_array($resulto)){

                                             }

如何完成此操作,使其返回一个包含requestee_id值的数组?

下面是我的第二个问题:

代码语言:javascript
复制
$query = "SELECT * FROM {votingapi_vote} vv WHERE ". drigg_votingapi_query('vv', FALSE) ." AND vv.content_type = 'node' AND vv.content_id = %d";

我想在这个查询中添加另一个WHERE条件,其中vv.uid是我的第一个函数中数组中的一个值。第二个函数返回一个为故事投票的人的列表。我想要返回,不是所有投票的人,而是特定用户的朋友。

如何完成第一个查询并将它的值放入第二个查询中?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-12-30 19:09:38

您可以使用子查询在一个查询中完成此操作:

代码语言:javascript
复制
$query = "SELECT * FROM
    {votingapi_vote} vv
WHERE
    ". drigg_votingapi_query('vv', FALSE) ."
AND
    vv.content_type = 'node'
AND
    vv.content_id = %d
AND
    vv.uid IN (SELECT
            requestee_id
        FROM
            user_relationships
        WHERE
            requester_id = '$uid'
        AND
            rtid = '13')";
票数 1
EN

Stack Overflow用户

发布于 2009-12-30 18:58:51

在您的第一个查询中已经有了一个数组,它是$rowo变量,您可以通过运行以下命令来查看其中的内容:

代码语言:javascript
复制
echo("<pre>".print_r($rowo,true)."</pre>");

然后,可以使用SQL IN子句根据第一个查询的结果来约束第二个查询。只要你的数组看起来像这样:

代码语言:javascript
复制
array (
    [0] => 12
    [1] => 43
    [2] => 45
    [3] => 60
)

然后,您可以使用以下命令:

代码语言:javascript
复制
$in_clause=implode(",",$rowo); // converts the array to 12,43,45,60
$query = "SELECT * FROM {votingapi_vote} vv WHERE ". drigg_votingapi_query('vv', FALSE) ." AND vv.content_type = 'node' AND vv.content_id = %d AND your_id IN ".$in_clause.";";

根据第一个查询的数组内容,这段代码可能无法工作,因此请按照建议运行print_r代码,并将数组的内容发送回此处。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1979561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档