php - 从两个数据源获取数据并在php中循环运行
问题描述
这是一个愚蠢的问题。我需要从两个数据源(一个 Oracle 和另一个 SQL Server)获取数据并比较数据。如果两个数据相同打印,但如果一个数据丢失仅打印一侧,则另一侧留空。目前我运行两个while循环并并排放在一张桌子上。但有时数据不完全相同。我在另一个内部尝试了一个while循环,但结果与预期不同。我该如何存档?无论如何我可以在一个循环中访问数据吗?
例如:
来源 1 - [2018-10-15,2018-10-16,2018-10-18,2018-10-19]
来源 2 - [2018-10-15,2018-10-18]
预期表:
来源 1 | 来源 2
2018-10-15 | 2018-10-15
2018-10-16 | 没有数据
2018-10-18 | 2018-10-18
2018-10-19 | 没有数据
$contents .= '<div class="table-responsive col-md-6"><table class="table table-striped"><thead><tr class="table-active"><th>Time Detail 1</th></tr></thead>';
while (odbc_fetch_row($result_1)){
$F_time = odbc_result($result_1,"Time1");
$s_id = odbc_result($result_1,"id");
$contents .= '<tr><td class="col-md-1">' . $F_time . ' <sup class="badge badge-success"> ' . $s_id . '</sup></td></tr>';
}
$contents .= '</table></div><div class="table-responsive col-md-6"><table class="table table-striped"><thead><tr class="table-active"><th>Time Detail 2</th></tr></thead>';
while (odbc_fetch_row($$result_2)){
$F_time2 = odbc_result($$result_2,"time2");
$contents .= '<tr><td class="col-md-1">' . $F_time2 . '</td></tr>';
}
$contents .= '</table></div></div>';
解决方案
由于您拥有通常相同的数据,因此请使用应该匹配的任何唯一数据(最好是某种 ID)作为比较的关键。
- 分别从两个数据源检索您的数据。为它们创建单独的数组,其中键是您在数据源之间比较的字段中的数据,值是完整记录。
- 将这两个数组的键合并到一个新数组中,并(可选)对该数组进行排序。
- 迭代合并的键数组,为每个键创建一行。对于每个数据源,如果存在数据,则在单元格中正常呈现;否则渲染一个空单元格。
这将为您提供一个包含来自两个数据源的所有元素的表格,其中一个源具有数据但另一个没有数据的空单元格。
推荐阅读
- node.js - 如何正确地将二进制数据“传输”到加密(密码)压缩并写入文件?使用纯 Node.js
- javascript - 为什么`getOwnPropertyDescriptor`返回一个值,而`hasOwnProperty`返回`false`?
- python-3.x - 未定义符号 uregex_setText_64 sqlite icu 扩展
- java - 如何在 jvm.dll 的路径中将 / 更改为 \\
- html - Div 并排大小可变,但始终填充 100%
- amazon-web-services - 如何在 AWS ECS 中运行 codedeploy 代理安装脚本?
- pandas - 根据 groupby 或 pandas 中的循环条件划分列
- regex - 正则表达式将数字和字符分成组
- css - CSS中有幂函数吗?
- linux - 循环中的 bash 脚本,用于计算文件和目录的数量