2010-09-06 18 views
3

我想創建一個表,然後對於每6行應該有一個tr,然後這些行在td內。PHP:在6行後結束並開始新的<tr>

所以例如:

<tr> 
<td><?php echo $show[id]; ?></td> // 1 
<td><?php echo $show[id]; ?></td> // 2 
<td><?php echo $show[id]; ?></td> // 3 
<td><?php echo $show[id]; ?></td> // 4 
<td><?php echo $show[id]; ?></td> // 5 
<td><?php echo $show[id]; ?></td> // 6 
</tr> <tr> // start new tr after 6 rows 
...repeat the tds 

我怎麼可以做這樣的事情? 我曾嘗試自己做

<tr> 
<?php 
while ($show == mysql_fetch_array($query)){ ?> 
<td><?php echo $show[id]; ?></td> 
<?php } ?> 
</tr> 

但你可以看到這只是插入一切都在一個TR ..

謝謝

回答

18
<tr> 
<?php 
$c = 0; // Our counter 
$n = 6; // Each Nth iteration would be a new table row 
while ($show = mysql_fetch_array($query)) 
{ 
    if($c % $n == 0 && $c != 0) // If $c is divisible by $n... 
    { 
    // New table row 
    echo '</tr><tr>'; 
    } 
    $c++; 
    ?> 
    <td><?php echo $show[id]; ?></td> 
    <?php 
} ?> 
</tr> 

相關鏈接:

+0

'0%6 == 0' - 這將形成一個空行。 – Gumbo 2010-09-06 12:34:32

+0

@Gumbo:我修好了 – Frxstrem 2010-09-06 12:36:58

2
<?php 
$countRows = 0; 
while ($show == mysql_fetch_array($query)){ 
if($countRows == 0) echo '<tr>'; 
?> 
<td><?php echo $show[id]; ?></td> 
<?php 
$countRows++; 
if($countRows == 6){ 
$countRows = 0; 
echo '</tr>'; 
} 
?> 
<?php } ?> 
<?php if($countRows < 6) echo '</tr>'; ?> 
4

計數的行數,如果模6爲null,則呼應</tr><tr>

<tr> 
<?php 
$i=0; 
while ($show == mysql_fetch_array($query)){ ?> 
    <td><?php echo $show[id]; ?></td> 
    <?php if(++$i%6 == 0) echo '</tr><tr>'; ?> 
<?php } ?> 
</tr> 
3

你可以這樣做:

<tr> 
<?php 
$count = 0; 
while ($show = mysql_fetch_array($query)){ 
     if($count == 6) { 
       $count = 0; 
       echo "</tr> <tr>"; 
     } 
     echo "<td>".$show[id]."</td>"; 
     $count++; 
} 
</tr> 
+0

grt答案...............它對我來說就像魅力一樣。 – 2013-10-04 09:21:39

3

你不小心使用了比較操作==代替一個賦值運算符=

,始終把六個單元到每一行,我應該這樣做:

$perRow = 6; 
$counter = 0; 
echo '<tr>'; 
while ($show = mysql_fetch_array($query)) { 
    if ($counter % $perRow === 0 && $counter !== 0) { 
     echo '</tr><tr>'; 
    } 
    echo '<td>', $show['id'], '</td>'; 
    $counter++; 
} 
while ($counter++ % $perRow !== 0) { 
    echo '<td></td>'; 
} 
echo '</tr>'; 

這將保證每一行正確充滿了六個小區。