从两个数据源获取数据并在php中循环运行

时间:2018-10-23 03:02:13

标签: 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>';

2 个答案:

答案 0 :(得分:0)

由于您通常具有相同的数据,因此请使用应该匹配的唯一数据(最好是某种ID)作为比较键。

  1. 分别从两个数据源中检索数据。为它们创建单独的数组,其中键是要在数据源之间进行比较的字段中的数据,而值是完整记录。
  2. 将这两个数组的键合并到一个新数组中,并(可选)对该数组进行排序。
  3. 遍历合并的键数组,为每个键创建一行。对于每个数据源,如果存在数据,则通常在单元格中进行渲染;否则渲染一个空单元格。

这将为您提供一个表,其中包含来自两个数据源的所有元素,并且具有一个空单元格,其中一个源具有数据,而另一个源没有数据。

答案 1 :(得分:0)

如果您有数组,请尝试

    $array = array('2018-10-15','2018-10-16','2018-10-18','2018-10-19');
    $array1 = array('2018-10-15','2018-10-18');

    $result=array_unique(array_merge($array,$array1));
    $fristarray = $secondarray = array();
    foreach ($result as $value) {   
        if(in_array($value, $array)){
            $fristarray[] = $value;
        }else{
            $fristarray[] = 'No Data';
        }
        if(in_array($value, $array1)){
            $secondarray[] = $value;
        }else{
            $secondarray[] = 'No Data';
        }       
    }

echo '<pre>';
print_r($fristarray);
echo '</pre>';


echo '<pre>';
print_r($secondarray);
echo '</pre>';

喜欢的

Array
(
    [0] => 2018-10-15
    [1] => 2018-10-16
    [2] => 2018-10-18
    [3] => 2018-10-19
)
Array
(
    [0] => 2018-10-15
    [1] => No Data
    [2] => 2018-10-18
    [3] => No Data
)