我会从这个问题中感到头痛。我有一个简单的查询和一个我在查询的while
循环期间生成的简单表。我希望在每个第三个结果后创建一个新行。
$customers_num=8; // This is actually mysql_numrows($result) never mind;
$i=0;
while ($i < $customers_num) {
if($i % 3 === 0) {
print '<tr>';
}
print '<td style="width: 30%;"></td>';
if($i % 3 === 0) {
print '</tr>';
}
$i++;
}
如果问题不明确,由于我的英语,我可以尝试更准确地改进问题。
问题是我打开它后立即关闭<tr>
:我需要打开它,把三个TD放进去,然后关闭它......
答案 0 :(得分:1)
首先,您忘了增加$i
。这应该可以解决问题:
$customers_num=8; // This is actually mysql_numrows($result) never mind;
$i=0;
while ($i < $customers_num) {
if($i % 3 === 0) {
if ($i > 0) print "</tr>"; //not first row
if ($i < $customers_num - 1) print '<tr>'; //not last row
}
print '<td style="width: 30%;"></td>';
$i++;
}
答案 1 :(得分:1)
这应该允许你打开tr并在其中打印三个td。
$customers_num=8; // This is actually mysql_numrows($result) never mind;
$data; // an assumed variable containing your data.
for($i = 0; i < $customers_num; $i++){
echo '<tr>';
for($j = $i; $j < $i + 3 && $j < $customers_num; $j++){
echo '<td style="width: 30%;">' . $data[$j] . '</td>';
}
echo '</tr>';
}
请不要使用您建议的奇数模数逻辑。只需要每个td的内循环。这使您可以在将来轻松更改逻辑。因此,如果需要,可能在未来,您可以轻松地将其分成5个单元格。
答案 2 :(得分:1)
我认为这就是你想要实现的目标:
$customers_num=8; // This is actually mysql_numrows($result) never mind;
$i=1;
while ($i < $customers_num) {
if($i == 1) {
print '<tr>';
}
print '<td style="width: 30%;"></td>';
if($i == 3 ) {
print '</tr>';
$i=0;//next inc. to 1
}
$i++;
}
if($i != 1 )
{
echo "</tr>";
}