0
我有带列标题的循环产生的表纹槽用30分钟的时间间隔周五,时间序列为24小时我刚才缩短示例代码:动态表行跨度
$times = array(00:00, 00:30, 01:00, 01:30);
$skip = array();
$row = 1;
<table>
<tr>
<td>Time</td><td>Mon</td><td>tue</td>
<tr>
foreach($times AS $val){
$stmt = $mysqli->prepare("
SELECT `show`,`time_start`,`time_stop`,`show_day`
FROM `db_shows` WHERE `time_start`='$val'
");
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($myrow[show],$myrow[time_start],$myrow[time_stop],$myrow[show_day]);
$stmt->fetch();
// GET THE ROWSPAN
$a = new DateTime($myrow[time_start]);
$b = new DateTime($myrow[time_stop]);
$interval = $a->diff($b);
$res = $interval->format('%h');
$res *= 2;
$res += 1;
// ARRY FOR ROWS TO SKIP TD
code in second part
// APPLAY DISPLAY NONE IF NEEDED
code in second part
// BUILD COLUMNS
switch($myrow[show_day]){
case "":$tds = "<td> </td><td> </td>"; break;
case "mon":$tds = "<td rowspan="$res" style="$mon">$myrow[show]</td><td> </td>"; break;
case "tue":$tds = "<td> </td><td rowspan="$res" style="$tue">$myrow[show]</td>"; break;
}
<tr>
<td>$val</td>$tds
</tr>
$row++;
}
</table>
现在我的代码工作正常使用rowspan生成表,但我知道必须根据行rowspan($ res)包含多少行来删除下一行中必需的td。这可能是我跌倒出车的一部分:) 我试图在这里实现是获得行号和“日TD”在随后
// ARRY FOR ROWS TO SKIP TD
if($res >=2){
$rowCount = $res -1;
$rowSkip = $row;
for($i=1;$i <= $rowCount; $i++){
$rowSkip++;
$skip[$rowSkip] = $myrow[show_day];
}
}
// LOOK IF ROW HAVE VALUE
foreach($skip AS $key2 => $val2){
if($row == "$key2" && $myrow[show_day]="$val2"){
$$val2 = "display:none";
}
}
我行隐藏我甚至不确定我是否正在接触关于正确问题的整个概念,任何帮助都将不胜感激。 谢谢!
在一天结束的时候我的表应该是这样的:
你可以给你的数据你有什么? –
当天的节目($ myrow [show_day]) 开始时间显示(time_start) 停止时间显示(time_stop) 显示名称($ myrow [show]) – user3744959
好吧我只想要数组。不是一个问题,我会让它成为我的自我。 –