4

誰かがループごとに生意気なphpを手に入れてくれるかどうか疑問に思っています...

私は現在、75% < hr > のテーブルにエコーアウトした製品のテーブルを持っていますが、それを 3 列のテーブルにしたいと考えています。たとえば、製品の表に 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>");
}
?>

探すべき重要事項:

PHPは0ベースの配列を使用するため、に設定$iします0

$cols列の数を簡単に変更できるようにする var という名前を設定します

(モジュラス) 演算子を使用して%、数値が列の偶数倍であるかどうかを調べ<tr>、正しい場所にタグを動的に追加しました。

于 2012-09-01T17:24:49.930 に答える