2011-03-24 42 views
1

我需要一點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+

我需要修改以產生輸出一個TR什麼和TD的內部,4個TD(產品)之後再製造另一個TR。在一行中,我想要4 TD,在這種情況下,如果只有3個產品,那麼最後一個將是一個空TD。呃..有可能嗎?

感謝

+1

你能澄清你想要什麼位?你想要1 TR與多個TD在其中? – JamesEggers 2011-03-24 20:45:36

+0

詹姆斯,正好! :) – Adrian 2011-03-24 20:47:22

回答

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> 
+0

通過鍵入這樣的時候你的張貼約爲1/2。 +1 – JamesEggers 2011-03-24 20:50:08

+0

非常完美,非常感謝。只是試着製作一張這樣的表格:http://d.pr/zy7I+如果只有3種產品(我想連續展示4種產品,然後用另一種產品另一個TR與TD的內部)? – Adrian 2011-03-24 20:51:47

+0

你只需要一行嗎? – Buggabill 2011-03-24 20:55:55

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> 
+0

這與他最初的迴應有何不同?從我可以告訴,它看起來像它仍然是每行1 td相同的結果 – JamesEggers 2011-03-24 20:47:04

+0

是的,剛剛注意到他的編輯。 – 2011-03-24 20:48:04

+0

除此之外,您不需要回顯HTML。事實上,在我看來,這可能使得它更**無法讀取。 – Buggabill 2011-03-24 20:48:49