php从数据库查询到数据输出到表格 如何实现自动换行呢?

php从数据库中查询数据

$a=('实例1','实例2','实例3','实例4','实例5','实例6'。。。。)

如此 现在想把他输出到一个表格(每5格换一行),该怎么输出呢?
目前想的是用if判断

$i='1';
if($i%5==0){

<tr><td>xxx<td></tr>

}else{

<td>xxx</td>
}

这样是有问题的 换行后循环一次就又换行了。。

clipboard.png

请问正确的语句该怎么写

阅读 6.2k
2 个回答

其实这个最好让前端定义好对应的CSSdiv结构就可以。你如果非用php来处理也可以,我试着写了一下很low,没做具体调试你试试看,或者你自己在改改。参考如下

$tmp = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17];
$count = count($tmp);
$k = 0; $str='';
for ($i=0; $i < $count; $i++) {
  if($k<5){
    $str .= $tmp[$i];
    $k++;
  } else {
    $str .= '<br/>';
    $k=0;
  }
}
echo $str;

如果你只是为了显示,其实用CSS+DIV来模拟一个表格更加合适:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<style type="text/css">
.container{
    width:100%;
}

.cell{
    width:20%;
    display: inline-block;
}
</style>
<div class="container">
<?php
$arr = array(1,2,3,4,5,6,7,8,9,10,11,12);
for ($i=0; $i < count($arr); $i++) { 
    echo '<div class="cell">' . $arr[$i] . '</div>';
}
?>
</div>
</body>
</html>

如果一定要用table来表示,则你要判断最后一行:

<?php
$arr = array(1,2,3,4,5,6,7,8,9,10,11,12);
$arr_count = count($arr);
$loop_count = 5 * ceil($arr_count / 5);
echo '<table border="1">';
for ($i = 0; $i < $loop_count; $i++) { 
    if($i % 5 == 0){
        echo '<tr>';
    }
    if($i < $arr_count){
        echo '<td>' . $arr[$i] . '</td>';
    }
    else{
        echo '<td></td>';
    }
    if($i % 5 == 4){
        echo '</tr>';
    }
}
echo '</table>';
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题