如何让数组增加到下一行?我正在制作一张3宽10高的标签。我得到的结果是每行三次重复。如何碰到每个表格单元格的下一行。
$i =0;
for ($i = 1; $i <= 3; ++$i){
while($row = mysql_fetch_array($result)){
$company = $row['company'];
$comp_strt = $row['comp_strt'];
$comp_city = $row['comp_city'];
$comp_state = $row['comp_state'];
$comp_zip = $row['comp_zip'];
$celldata= $company."<br>".$comp_strt."<br>".$comp_city.", ".$comp_state." ".$comp_zip;
if($i = 1){echo "<tr style='row-height: 5em;'><td>'".$celldata."'</td>";}
if($i = 2){echo "<td>'".$celldata."'</td>";}
if($i = 3){echo "<td>'".$celldata."'</td></tr>"; $i = 1;}
}}
答案 0 :(得分:1)
您使用=
检查是否相等。你应该使用==
if($i == 1){echo "<tr style='row-height: 5em;'><td>'".$celldata."'</td>";}
if($i == 2){echo "<td>'".$celldata."'</td>";}
if($i == 3){echo "<td>'".$celldata."'</td></tr>"; $i = 1;}
可能无法解决您的问题,但这是一个开始。
答案 1 :(得分:1)
问题是while
循环在mysql_fetch_array
中的行耗尽之前不会退出。只需使用while
循环并在$i
内增加while
:
$i= 0;
while ($row = mysql_fetch_array($result)) {
// process the row into $celldata
if ($i==0 || $i%3==0) {
if ($i > 0) // close out existing row
// start a new row
}
// output cell data
$i++;
}
// Output a closing '</tr>' tag if $i > 0
答案 2 :(得分:1)
我会这样做:
$cellsPerRow = 3;
$i = 0;
echo '<table>';
while ($row = mysql_fetch_array($result)) {
if ($i % $cellsPerRow == 0) {
echo '<tr>';
}
// process $row and echo the table cell
if ($i % $cellsPerRow == $cellsPerRow - 1) {
echo '</tr>';
}
$i++;
}
if ($i > 0 && $i % $cellsPerRow != 0) { // finish off row if needed
while ($i % $cellsPerRow != 0) {
echo '<td></td>';
$i++;
}
echo '</tr>';
}
echo '</table>';
这将始终为您提供合适的表格。
答案 3 :(得分:0)
如果您想要彼此相邻绘制3个标签,则只需在正确的位置插入</tr><tr>
块。你可以只有一个递增变量,不需要for
循环:
$i = 0;
echo '<table><tr>';
while($row = mysql_fetch_array($result)){
if($i == 3) {
echo '</tr><tr>';
$i = 0;
}
$company = $row['company'];
$comp_strt = $row['comp_strt'];
$comp_city = $row['comp_city'];
$comp_state = $row['comp_state'];
$comp_zip = $row['comp_zip'];
$celldata= $company."<br>".$comp_strt."<br>".$comp_city.", ".$comp_state." ".$comp_zip;
echo "<td>$celldata</td>";
$i++;
}
echo '</tr></table>';
所以现在每次$i
计数器达到3时,它会创建一个表行中断并将$ i设置为零,从而导致每行3个单元格。
答案 4 :(得分:-3)
摆脱for循环,ffs