我无法将其正确地放入表结构中,据我所知,所有编码都是正确的但是由于某种原因它无法正常工作。
这是我的代码:
<?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>
答案 0 :(得分:1)
1)您实际问题的答案是您在初始for循环中缺少</tr>
,并且在第二个for循环中错过了一个开放<tr>
。所以,要么你实际上错过了这些东西,要么你的包围有问题。
2)您可能错过了这个,因为您的代码格式不正确。如果你避免“回显”你不需要的HTML块,IDE的语法高亮可能能够发现这个错误(取决于你的IDE),它也使你的代码更加清晰。
答案 1 :(得分:0)
您正在迭代同一组项目三次。第一个循环在每次迭代开始时创建<tr>
,最后一个循环在每个循环结束时创建</tr>
。因此,第一个循环正在“正确”工作,填充前两列,然后移动到下一行。第二个然后将所有数据放在最后一行,第三行添加数据和新行。您应该只有一个循环根据需要填充列,而不是循环使用相同的数据三次。在每次迭代的最开始,添加<tr>
,最后添加</tr>
见fiddle。这无法访问您需要的任何目录,因此我将scandir
调用替换为array_fill
,但您可以看到格式应该是这样。注意:要对代码进行大量额外的优化;这只是为了表明将三个循环合二为一会有助于解决这个具体问题。