4

只是想知道是否有人可以为每个循环提供一个厚颜无耻的 php 帮助我......

我目前有一张产品表,我已经在一张表中回显,每张表都有 75% < hr >,但我希望它成为一个三列表。我不介意,例如,产品表中有 4 个产品,它在第一列,接下来的 2 个是空的,等等

当前代码如下...

<?php

if($results && mysql_num_rows($results) > 0){
?>

  <?php
    $i = 1;
    while($row = mysql_fetch_assoc($results)){
        $i++;
?><table width="750">
<tr>
    <td id="topbottom" width="220px"><a href="products.php?id=<?php echo($row['productId']); ?>"/><img src="images/<?php echo($row['imageName']); ?>"  width="220px"/></a></td>
    <td id="pad">
    <h1><?php echo($row['productName']); ?></h1>
    <br>
    <h2><?php echo($row['productType']); ?></h2>
    <br>
    <h3> &pound;<?php echo($row['productPrice']); ?></h3>
    <br>
    <?php echo($row['productDesc']); ?>
    <br /><br />
    <a href="products.php?id=<?php echo($row['productId']); ?>"/><img src="images/findout.png"/></a>

    </td>
  </tr></table><hr color="#6c3600" width="75%" />
<?php
    }
?>  


<?php
} else {
    echo("<p>No items found</p>");
}
?>
4

1 回答 1

2
<table width="750">

<?php

if($results && mysql_num_rows($results) > 0){
?>

  <?php
    $i = 0; // Set this to 0, since php is 0 based
    $cols = 3; // Number of cols you want
    while($row = mysql_fetch_assoc($results)){
        // Use the modulus operator to see if i is an even multiple of $cols
        // If it is then we need to open a new table row
        if($i % $cols == 0) 
        {
            echo '<tr>';
        }    
?>
    <td id="topbottom" width="220px"><a href="products.php?id=<?php echo($row['productId']); ?>"/><img src="images/<?php echo($row['imageName']); ?>"  width="220px"/></a></td>
    <td id="pad">
    <h1><?php echo($row['productName']); ?></h1>
    <br>
    <h2><?php echo($row['productType']); ?></h2>
    <br>
    <h3> &pound;<?php echo($row['productPrice']); ?></h3>
    <br>
    <?php echo($row['productDesc']); ?>
    <br /><br />
    <a href="products.php?id=<?php echo($row['productId']); ?>"/><img src="images/findout.png"/></a>

    </td>
    <?php

    $i++;
    // Same as above but we want to close the table row after $cols
    if($i % $cols == 0) 
    {
        echo '</tr>';
    }
    ?>
<?php
    }
?>  

</table><hr color="#6c3600" width="75%" />


<?php
} else {
    echo("<p>No items found</p>");
}
?>

要寻找的关键事项:

设置$i0因为 php 使用基于 0 的数组

设置一个名为的 var $cols,它允许您轻松更改列数

使用%(模数)运算符来查找数字是否是列的偶数倍,以<tr>在正确的位置动态添加标签。

于 2012-09-01T17:24:49.930 回答