动态行跨度php while循环
我有两个表一个项目表和客户表: 在表中,您可以看到第二个条目item id 1002有两个条目。我想为第1列和第3列的条目添加colspan动态行跨度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
项目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>