从两个不同的数据库查询中查找两个计数列之间的差异,并在PHP中显示结果

时间:2017-03-15 10:36:30

标签: php mysql sql

我上周问了一个问题,并假设它的最后一部分是直截了当的部分。然而事实证明并非如此。 这是原始问题和背景的 link

我有两个数据库,所以做了2个SQL查询,并将结果合并到一个有四列显示的表中

姓名|号码| db1计数| db2计数|

完美显示所有信息。 但是,我需要让它在第5列中显示db1 Count和db2 Count之间的差异。 这是我的代码:

$results = array();
while($row = $result1->fetch_assoc()) {
 //Adding all the 1st query results 
    $results[$row['number']] = $row;
}

while($row = $result2->fetch_assoc()) {
    if(! isset($results[$row['number']]) {
          $results[$row['number']] = $row;
    }else {
      $results[$row['number']]['db2 Count'] = $row['db2 Count'];
    }         
}
$db1_count = $row['db1 Count'];
$db2_count = $row['db2 Count'];
$difference = ($db1_count - $db2_count);


if ($results) {
    echo"<TABLE><caption>Total Call Count Overview</caption><TR>
      <TH>Number</TH>
      <TH>Company</TH>
      <TH>db1 Count</TH>
      <TH>db2 Count</TH>
      <TH>Difference</TH></TR>";

    foreach($results as $row) {
         echo"<TR><TD>". $row["number"]. "</TD>";
         echo"<TD>". $row["company"]. "</TD>";
         echo"<TD>". $row["db1 Count"]. "</TD>";
         echo"<TD>". $row["db2 Count"]. "</TD>";
         echo"<TD>". $difference . "</TD></TR>";
    }
    echo"</TABLE>";
 } else {
 echo"0 Results";
}

我原以为将计数作为变量

$db1_count = $row['db1 Count'];
$db2_count = $row['db2 Count'];
$difference = ($db1_count - $db2_count);

允许我减去它们并回显$ difference变量,但我只是得到一个用零填充的列。 我也试过

echo"<TD>". $row['db1 Count'] - $row['db2 Count']. "</TD>";

但只是为了获得页面顶部的所有db2 Count数字。

我是否缺少某些东西,因为我在网上尝试过类似问题的答案,但无济于事。我真的很陌生,所以任何正确方向的提示都会受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

移动以下行:

$db1_count = $row['db1 Count'];
$db2_count = $row['db2 Count'];
$difference = ($db1_count - $db2_count);

foreach($results as $row)

所以

foreach($results as $row) {
    $db1_count = $row['db1 Count'];
    $db2_count = $row['db2 Count'];
    $difference = ($db1_count - $db2_count);
    echo"<TR><TD>". $row["number"]. "</TD>";
    echo"<TD>". $row["company"]. "</TD>";
    echo"<TD>". $row["db1 Count"]. "</TD>";
    echo"<TD>". $row["db2 Count"]. "</TD>";
    echo"<TD>". $difference . "</TD></TR>";
}