据我所知,我无法将其正确放入表结构中,但据我所知,所有编码都是正确的,但由于某种原因它不起作用。
这是我的代码:
<?php
echo "<table class='array'>
<tr><th> Employee </th>
<th>In Que </th>
<th>Incomplete </th>
<th>Processed </th></tr>";
$count_result=array();
$path = "Users";
$folders = @scandir("$path");
if ($folders) {
foreach ($folders as $item) {
$count = 0;
if ((substr($item, 0, 1) == '.') || (preg_match("/'.php$/", $item)))
continue;
if (is_dir($path . "/" . $item)) {
$target_folders = @scandir($path . "/" . $item . "/uploaded/");
if ($target_folders) {
foreach ($target_folders as $target_item) {
if ((substr($target_item, 0, 1) == '.') || is_dir("$path/$item/uploaded/$target_item"))
continue;
$count++;
}
}
$count_result[$item]=$count;
}
echo "<tr><td><div class='data'>" .$item."
</div></td>";
echo "<td><div class='data1'>" .$count."
</div></td>";
}
}
?>
<?php
$counta_result=array();
$path = "Users";
$foldersa = @scandir("$path");
if ($foldersa) {
foreach ($foldersa as $itema) {
$counta = 0;
if ((substr($itema, 0, 1) == '.') || (preg_match("/'.php$/", $itema)))
continue;
if (is_dir($path . "/" . $itema)) {
$target_foldersa = @scandir($path . "/" . $itema . "/incomplete/");
if ($target_foldersa) {
foreach ($target_foldersa as $target_itema) {
if ((substr($target_itema, 0, 1) == '.') || is_dir("$path/$itema/uploaded/$target_itema"))
continue;
$counta++;
}
}
$counta_result[$itema]=$counta;
}
echo "<td><div class='data2'>" .$counta."</div></td>";
}
}
?>
<?php
$countb_result=array();
$path = "Users";
$foldersb = @scandir("$path");
if ($foldersb) {
foreach ($foldersb as $itemb) {
$countb = 0;
if ((substr($itemb, 0, 1) == '.') || (preg_match("/'.php$/", $itemb)))
continue;
if (is_dir($path . "/" . $itemb)) {
$target_foldersb = @scandir($path . "/" . $itemb . "/processed/");
if ($target_foldersb) {
foreach ($target_foldersb as $target_itemb) {
if ((substr($target_itemb, 0, 1) == '.') || is_dir("$path/$itemb/processed/$target_itemb"))
continue;
$countb++;
}
}
$countb_result[$itemb]=$countb;
}
echo "<td><div class='data3'>" .$countb."</div></td></tr>";
}
}
?>
</table>
1)实际问题的答案是,您在初始 for 循环中缺少一个</tr>
,在第二个 for 循环中缺少一个开<tr>
。所以,要么你实际上错过了这些东西,要么你的括号有问题。
2)你可能错过了这一点,因为你的代码格式很差。如果您避免在不必要的位置"回显"HTML块,IDE的语法突出显示可能会发现此错误(取决于您的IDE),这也使您的代码更加干净。
您正在迭代同一组项目三次。第一个循环在每次迭代开始时创建一个<tr>
,最后一个循环在每次迭代结束时创建一个</tr>
。因此,第一个循环"正常工作",填充前两列,然后移动到下一行。然后,第二个只是将其所有数据放在最后一行,第三个添加数据和新行。与其遍历相同的数据三次,不如只使用一个循环来根据需要填充列。在每次迭代的最开始时,添加一个<tr>
,并在最后添加一个</tr>
看到这个小提琴。这无法访问您需要的任何目录,所以我用 array_fill
s 替换了scandir
调用,但您可以看到格式是应该的。注意:对代码进行大量额外的优化;这只是为了表明将三个循环合二为一将有助于解决此特定问题。