我有一个每天更新的数据库。我正在尝试创建一个可以在内部查看的网页。我希望它有一个在特定列中未找到NULL值的情况下显示“完成”的列,因为我只需要更新该特定列,而在找到空值时则需要更新“不完整”
所以这是我尝试过的代码片段:
$db = new PDO("sqlite:/var/www/html/dupi/GeoComply_Reported_Since_3_22_18.db");
$Array = array();
print "<table border=10 bordercolorlight=YELLOW bordercolordark=BLUE>";
print "<tr><td><u>Operator</u></td><td><u>Unique DUPIs</u></td><td><u>Total Reports</u></td></tr>";
$result = $db->query('SELECT operator, COUNT(DISTINCT dupi), COUNT(DISTINCT userID), dupi FROM reported GROUP BY operator ORDER BY COUNT(DISTINCT userID) DESC');
foreach($result as $row)
{
print "<tr><td>".$row['operator']."</td>";
print "<td>".$row['COUNT(DISTINCT dupi)']."</td>";
print "<td>".$row['COUNT(DISTINCT userID)']."</td>";
foreach($row['dupi'] as $rowdata){
if ($rowdata == "NULL")
{
print "<td>InComplete</td>";
} else {
print "<td>Complete</td>";
}
}
}
print "</table>";
$db = NULL;
示例输入可能是
Home 2 1 abc
Pancake 4 3 NULL
对于薄煎饼说,行可能看起来很像
Maple abc
Bacon NULL
更新:因此,对于那些好奇的人,我发现了如下所示的解决方法。我知道这不是最好的方法,但我的moto是,如果不解决问题,它是否可以很好地工作。
$db = new PDO("sqlite:/var/www/html/dupi/GeoComply_Reported_Since_3_22_18.db");
print "<table border=10 bordercolorlight=YELLOW bordercolordark=BLUE>";
print "<tr><td><u>Operator</u></td><td><u>Unique DUPIs</u></td><td><u>Total Reports</u></td><td><u>DUPIs to be Filled</u></td></tr>";
$result = $db->query('SELECT operator, COUNT(DISTINCT dupi), COUNT(DISTINCT userID), dupi FROM reported GROUP BY operator ORDER BY COUNT(DISTINCT userID) DESC');
foreach($result as $row)
{
print "<tr><td>".$row['operator']."</td>";
print "<td>".$row['COUNT(DISTINCT dupi)']."</td>";
print "<td>".$row['COUNT(DISTINCT userID)']."</td>";
$sql = "SELECT dupi, COUNT(*) FROM reported WHERE operator = '" .$row['operator'] ."' AND dupi is NULL";
$results = $db->query($sql);
foreach($results as $rows)
{
print "<td>" .$rows['COUNT(*)']. "</td></tr>";
}
}
print "</table>";
$db = NULL;
而不是检查NULL,您应该检查$ rowdata;
if($ rowdata):打印“完成”;其他:打印“完成”;endif;
问候