从一个查询中添加一个结果,然后从另一个查询中添加第二个结果

Posted

技术标签:

【中文标题】从一个查询中添加一个结果,然后从另一个查询中添加第二个结果【英文标题】:Add one result from one query and then second from another one 【发布时间】:2019-05-29 01:26:37 【问题描述】:

我有两个 mysqli 查询和两个结果变量,如下所示

    $result = mysqli_query($con, $query); $result1 = mysqli_query($con, $query1);

我想做的是创建一个包含所有结果的数组,但条件是它必须包含来自$result 的一个结果,然后下一个应该来自$result1,下一个来自$result,依此类推,直到两个变量都有值。

while($row = mysqli_fetch_assoc($result))

    $links[] = $row["url"];
    while($row1 = mysqli_fetch_assoc($result1))
    
        $links[] = $row1["ads_id"];
    
  

目前我有这个这样的工作方式,从$results 中添加一个值,然后从$results1 中添加所有值,然后再从$result 中添加所有值。

谁能帮我解决这个逻辑,我无法弄清楚这件事的逻辑。

【问题讨论】:

【参考方案1】:

你可以试试这样的。它同时循环通过$result$result1,完成来自$result1 的任何剩余行:

while ($row = mysqli_fetch_assoc($result)) 
    $links[] = $row["url"];
    if ($row1 = mysqli_fetch_assoc($result1))
        $links[] = $row1["ads_id"];

while ($row1 = mysqli_fetch_assoc($result1)) 
    $links[] = $row1["ads_id"];

【讨论】:

如果两者都结束了,这将不起作用让我们说超过 2 个结果对吧? 即使两者都有超过 10 个结果,我也需要它工作,我需要数组具有两个表中的备用值 当然,不管每组有多少结果,它都会起作用。第一个 while 循环将处理来自第一个查询的所有结果以及来自第二个查询的任何匹配结果,第二个 while 循环将处理来自第二个查询的所有剩余结果。

以上是关于从一个查询中添加一个结果,然后从另一个查询中添加第二个结果的主要内容,如果未能解决你的问题,请参考以下文章

Oracle SQL:从一个表中选择一个计数,从另一个表中使用子查询缩小选择范围

访问:使用从另一个查询中选择的 DAO.recordset 运行查询

PHP+MYSQL查询结果上加一个排名序号且分页不间断

在第一个查询结果中添加 CDept_Id

将 MIB 变量标签连接到 Prometheus 中其他两个 MIB 变量的另一个查询结果

如何在 Google Dataflow 中添加列以查询结果