Bearbeiten :
Angenommen, Ihre Ergebnisse sind wie folgt:
Schreiben
number company db1 Count
1 SuperCorp 5
2 SuperCorp 10
Bericht
number company db2 Count
2 SuperCorp 10
3 SuperCorp 20
Wenn Sie eine Tabelle wie diese anzeigen möchten
number company db1 Count db2 Count
1 SuperCorp 5 0
2 SuperCorp 10 10
3 SuperCorp 0 20
Sie müssen die Ergebnisse der beiden Abfragen zusammenführen, bevor Sie sie auf dem Bildschirm ausdrucken können. Dies ist dank Ihrer 'Nummer'-Spalte möglich, die als Schlüssel Ihres PHP-Arrays verwendet werden kann.
Sie müssen auch Ihre SQL-Abfragen ändern, um eine gefälschte Spalte einzuschließen, die die andere Datenbankanzahl darstellt:
$sql1 = "SELECT num.number AS Number, com.name As company, count(*) As \"db1 count\", 0 As \"db2 count\"
FROM db1.db.job_processing AS jp
LEFT JOIN db1.db.number AS num ON num.id=jp.number_id
LEFT JOIN db1.db.company AS com on com.id=num.company_id
WHERE jp.show=1 AND jp.processing_complete=1
AND jp.call_start_time BETWEEN '2016-12-17' AND '2017-01-03'
GROUP BY Number
ORDER BY Number
LIMIT 20";
$sql2 = "SELECT num.number AS Number, com.name AS company, COUNT(*) AS \"db2 Count\", 0 As \"db1 count\"
FROM db2.db.job_processing AS jp
LEFT JOIN db2.db.number AS num ON num.id=jp.number_id
LEFT JOIN db2.db.company AS com on com.id=num.company_id
WHERE jp.show=1 AND jp.processing_complete=1
AND jp.call_start_time BETWEEN '2016-12-17' AND '2017-01-03'
GROUP BY Number
LIMIT 20";
Und kombinieren Sie dann die 2 Ergebnisse, um sie anzuzeigen, wie hier:
$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']]) {
//Mean's this row is not present in the 1st database, so add it
$results[$row['number']] = $row;
}else {
//Just merging the db2 Count from the 2nd database since other fields are the same
$results[$row['number']]['db2 Count'] = $row['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></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></TR>";
}
echo"</TABLE>";
} else {
echo"0 Results";
}