动态行跨度php while循环

动态行跨度php while循环,php,html-table,Php,Html Table,我有两个表一个项目表和客户表: 在表中,您可以看到第二个条目item id 1002有两个条目。我想为第1列和第3列的条目添加colspan 项目ID 项目颜色 顾客 但它以正常的方式打印,我不知道如何在循环中添加rowspan..请提供一些逻辑来解决它 您可以这样尝试: 首先,在查询中添加一个计数器,该计数器将指示一个给定项有多少个条目 $sql_cust = mysqli_query($con, "SELECT *, (SELECT COUNT(*) FROM item_table

我有两个表一个项目表和客户表:

在表中,您可以看到第二个条目item id 1002有两个条目。我想为第1列和第3列的条目添加colspan


项目ID
项目颜色
顾客
但它以正常的方式打印,我不知道如何在循环中添加rowspan..请提供一些逻辑来解决它


您可以这样尝试:

首先,在查询中添加一个计数器,该计数器将指示一个给定项有多少个条目

$sql_cust = mysqli_query($con,
"SELECT *, (SELECT COUNT(*) FROM item_table as it 
 WHERE it.item_id = item_table.item_id) as c
 FROM item_table");
然后,在项目中循环时,将行跨度设置为该项目的条目数。下面是调整后的整个代码

<?php
$sql = mysqi_query($con,
    "SELECT *, (SELECT COUNT(*) FROM item_table as it 
     WHERE it.item_id = item_table.item_id) as entry_count
     FROM item_table");
$buffer = [];
while($row = mysqli_fetch_array($sql)){
    if(!isset($buffer[$row[$item_id]])) {
        $buffer[$row[$item_id]] = 1;
    }
?>
<tr>
    <?php if(!isset($buffer[$row[$item_id]])) {?>
    <td rowspan="<?=$row['entry_count']?>"><?=$row['item_id'];?></td>
    <?php }?>
    <td><?=$row['item_color'];?></td>
    <?php if(!isset($buffer[$row[$item_id]])) {?>
    <td rowspan="<?=$row['entry_count']?>">
        <select>
        <?php
        $sql_cust = mysqli_query($con,"select * from customer_tbl");
        while($row_cust = mysqli_fetch_array()){
        if($row['customer_id'] == $row_cust['customer_id']){
            echo "<option selected='selected' >".$row['customer_name']."</option>";
        }else{
            echo "<option>".$row['customer_name']."</option>";
        }

        <?php
        }
        ?>
        </select>
    </td>
    <?php }?>
  </tr>


<?php
}
?>

我有一个简单的想法

给TD一个像

<td id="dynamically-Generate"> (you need to verify that TD id need to be equal in .rowSpan ="here" inside script  )
(您需要验证TD id在脚本内的.rowSpan=“here”中是否需要相等)
如果动态生成大于1,则设置此TD,然后不显示

如果Dynamic Generate大于1,则再次使用此脚本

<script>
document.getElementById("dynamically-Generate").rowSpan = "dynamically-Generate";
</script>

document.getElementById(“动态生成”).rowSpan=“动态生成”;
在循环内使用脚本,两个动态生成的脚本在EveryLop内都需要相同,并且在每个循环后都需要更改

<script>
document.getElementById("dynamically-Generate").rowSpan = "dynamically-Generate";
</script>