需要一点PHP帮助

时间:2011-03-24 20:33:58

标签: php

我需要很少的PHP帮助,这是一个生成产品列表的代码:

    <table class="list">
        <?php for ($i = 0; $i < sizeof($products); $i = $i + 1) { ?>

  <tr>
    <?php for ($j = $i; $j < ($i + 1); $j++) { ?>
    <td width="100%"><?php if (isset($products[$j])) { ?>
      <a class="prod_snimka" href="<?php echo $products[$j]['href']; ?>"><img width="200" src="<?php echo $products[$j]['thumb']; ?>" title="<?php echo $products[$j]['name']; ?>" alt="<?php echo $products[$j]['name']; ?>" /></a>


      <?php } ?></td>
    <?php } ?>
  </tr>
  <?php } ?>
</table>   

输出:http://d.pr/PPVq+

在4个TD(产品)制作另一个TR之后,我需要修改以产生一个TR和TD的输出。在一行中我想要4个TD,在这种情况下,如果只有3个产品,那么最后一个将是一个空的TD。嗯..有可能吗?

由于

2 个答案:

答案 0 :(得分:2)

看起来你不需要内循环。它只会执行一次。

试试这个:

<?php
    $columns = 4;
    $i = 0;
?>

<table class="list">
    <?php foreach ($products as $product) { 
        if (!($i % $columns)) { 
            echo '<tr>';
            } ?>
            <td width="25%">
                <a class="prod_snimka" href="<?php echo $product['href']; ?>"><img width="200" src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>" alt="<?php echo $product['name']; ?>" /></a>
            </td>

        <?php 
            $i++;

            if (!($i % $columns)) { 
                echo '</tr>';
            } 
        ?>
    <?php } ?>

    <?php
        if (!($i % $columns)) {
            while (!($i % $columns)) {
                echo '<td width="25%"></td>';
                $i++;
            }

            echo '</tr>';
        } 
    ?>  
</table> 

答案 1 :(得分:1)

<table class="list">
<?php $i = 0;
$cols = 4;
for each $products as $product { 
    if (!($i % $cols)) {
    echo "<tr width='25%'>";
    }
    echo '<td><a class="prod_snimka" href="'.$product['href'].'"><img width="200" src="'.$product['thumb'].'" title="'.$product['name'].'" alt="'.$product['name'].'" /></a></td>';
    if !($i % $cols) {
    echo "</tr>";
    }
    $i++;
}
if ($i-1 % $cols) {
echo "</tr>";
}
</table>