将php mysql数据拆分为每列20行

时间:2014-02-04 07:46:05

标签: php mysql

我想将php mysql中的数据拆分为每列20行。以下是我的代码:

while($row = mysql_fetch_assoc($result)) {
    $id[] = $row['id'];
}
for($i = 0; $i < 20; $i++) {
    echo '<table><tr>';
    for ($j = 0; $j < (count($id)-1)/20; $j++) {
        echo '<td>'.$id[$i + $j * 20].'</td>';
    }
    echo '</tr><tr>';
}
echo '</tr></table>';

假设我有21行,代码只输出20行,第21行丢失。

如果有22行(只要除以20后的余数大于或小于1),就会出现undefined offset 22, undefined offset 23.....个错误。

内部for循环有问题,但我无法修复它。我该如何解决这个错误?

1 个答案:

答案 0 :(得分:2)

我无法发表评论(+50代表)并在此处添加评论

while($row = mysql_fetch_assoc($result)) {
$id[] = $row['id'];
}
for($i = 0; $i < 20; $i++) {
    echo '<table><tr>';
    for ($j = 0; $j < (count($id)-1)/20; $j++) {
        echo '<td>'.$id[$i + $j * 20].'</td>';
    }
    echo '</tr><tr>';
}
echo '</tr></table>';

我不知道为什么要使用第二个for

但是在条件中,您为for

定义了20次运行

此代码可能会帮助您

echo '<table>'
while($row = mysql_fetch_assoc($result)) {
$id[] = $row['id'];
}
for($i = 0; $i <= 20; $i++) {

    echo '</tr><td>'.$id[$i].'</td><tr>';
}
echo '</table>';

这是21次运行for <=