0

我想有两个单独的查询。第一个查询我想在表格中按降序显示一堆数字(做起来很简单)。然后我想做的是第二个查询,对于每个匹配的数字,我想显示相应的数据。我想单独执行它而不是将其全部组合到一个查询中的原因是,我可以显示第一个查询的所有结果,无论它是否有数据。IE: 1 - (空白) 2 - 我有数据 3 - 我也有数据 4 - (空白) 5 - 我有更多数据

到目前为止,我使用的代码是:

// Perform number query
$number_query = mysqli_query($con,$num_query);
while($numbers = mysqli_fetch_array($number_query)) {

// Do data query
$data_query = mysqli_query($con,$d_query);
    while($data = mysqli_fetch_array($data_query)) {
    if ($numbers['number'] == $data['number']) {
        echo $numbers['number'];
        echo $data['content'];
        echo '<br>';
        }
    else {
        echo $numbers['number'];
        echo '<br>';
    }
    }

}

我不认为我采取了正确的方法,但似乎我得到了部分正确的结果,因为它在带有内容的数字旁边显示数据。问题是对于数据库中的每条数据,$numbers['number'] 都被复制了。因此,如果 $data['content'] 有 5 个数据库条目,则 $numbers['number'] 的每个条目将被复制 5 次。

- - - -编辑 - - -

好的,我意识到为什么我的问题没有意义(也许)。我将使用这些表的示例:

表格1

唯一标识 | 号码 | 标识符 | ETC

数据库表 1 可能每月更新一次,所有数字和标识符必须始终在页面上可见。该查询需要单独保存,因为它在其他页面上多次使用(超过 10 次),因此我已将其包含在页面之外的头文件中。

表 2

唯一标识 | 号码 | 描述 | 等等

数据库表 2 需要通过数字列引用,此内容大约每 10-15 分钟更改一次,现在表 1 可能只有 50 行数据,而表 2 可能有接近 100+ 的新行天。该查询嵌入在页面中,因为它将是唯一实际使用此特定查询的页面。

布局的想法是这样的:

<table>
<tr>
<td>Number & Identifier</td>  (taken from Table 1)
<td>Description</td> (content from table 2)
<td>(more content from table 2)</td>
etc 

所以回头看我的问题是问题在于,对于页面上显示的每个描述和其他内容以及相应的数字和标识符信息,所有没有描述或内容的数字和标识符都被复制相同的数量次,因为有描述和内容的条目。

如果我删除 else 条件语句,那么问题就变成了根本不显示空白条目,这不符合我的要求。之所以需要这些空白项,是因为这个页面可以打印出来,所以不使用计算机的人可以用钢笔/铅笔填写空白字段,然后可以手动输入。

4

1 回答 1

0

我现在确实理解你的问题,但我仍然认为我之前发布的使用 join 的解决方案是你最好的选择。

http://www.sqlfiddle.com/#!2/26854/2

于 2013-10-26T20:57:42.387 回答