2012-03-10 9 views
0

私はPHPで製品カタログを作成しました。製品をグリッドのような表にしたいので、1行に3つの製品が並んでいます下など。私は..製品が水平に繰り返しので、私はちょうどそれが自動的に3つの製品の後に新しい行を開始させる方法がわからないphp製品カタログのテーブルレイアウト

をそれを持ってここに私のコードは、現在です:

<?php # Script 17.5 - browse_prints.php 
// This page displays the available prints (products). 

// Set the page title and include the HTML header: 
$page_title = 'Browse the Films'; 

require_once ('mysqli_connect.php'); 

// Default query for this page: 
$q = "SELECT image_name, genre.genre_id, CONCAT_WS(' ', genre_name) AS genre, film_name, price, platform, description, film_id, image_name FROM genre, film WHERE genre.genre_id = film.genre_id AND film.platform = 'DVD' ORDER BY genre.genre_name ASC, film.film_name ASC "; 

// Are we looking at a particular genre? 
if (isset($_GET['gid']) && is_numeric($_GET['gid'])) { 
$gid = (int) $_GET['gid']; 
if ($gid > 0) { // Overwrite the query: 
    $q = "SELECT image_name, genre.genre_id, CONCAT_WS(' ', genre_name) AS genre, film_name, price, description, film_id, image_name FROM genre, film WHERE genre.genre_id = film.genre_id AND film.genre_id = $gid AND film.platform = 'DVD' ORDER BY film.film_name"; 
} 
} 



// Create the table head: 
echo '<table border="0" width="90%" cellspacing="3" cellpadding="3" align="center"> 
<tr> 
    <td align="left" width="50%"><b>Film Name</b></td> 
    <td align="right" width="50%"><b>Price</b></td> 
</tr><tr>'; 


// Display all the prints, linked to URLs: 
$r = mysqli_query ($dbc, $q); 
while ($row = mysqli_fetch_array ($r, MYSQLI_ASSOC)) { 

// Display each record: 
//image 
$image_name = $row['image_name']; 
echo " 
    <td><a href=\"view_print.php?fid={$row['film_id']}\">{$row['film_name']}<br><br> 
    <img src=uploads/$image_name.jpg><br> 
    <br>&#163;{$row['price']}</td> 
"; 


} // End of while loop. 

echo '</tr></table>'; 
mysqli_close($dbc); 

?> 

答えて

1

divはテーブルより優れた解決策です。 それをやりたければ、カウンターを追加してください。

// Create the table head: 
echo '<table border="0" width="90%" cellspacing="3" cellpadding="3" align="center"> 
<tr> 
    <td align="left" width="50%"><b>Film Name</b></td> 
    <td align="right" width="50%"><b>Price</b></td> 
</tr>'; 

$row_count = 0: 
// Display all the prints, linked to URLs: 
$r = mysqli_query ($dbc, $q); 
while ($row = mysqli_fetch_array ($r, MYSQLI_ASSOC)) { 
$row_count++; 
if ($row_count==1) echo "<tr>"; 
// Display each record: 
//image 
$image_name = $row['image_name']; 
echo " 
    <td><a href=\"view_print.php?fid={$row['film_id']}\">{$row['film_name']}<br><br> 
    <img src=uploads/$image_name.jpg><br> 
    <br>&#163;{$row['price']}</td> 
"; 
    if ($row_count==3) { 
     echo "</tr>"; 
     $row_count=0; 
    } 
} // End of while loop. 

if ($row_count>0) echo "</tr>"; 
echo '</table>'; 
2

インデックスを使用しますループ内の変数:

$i = 0; 
while ... 
{ 
    // other code... 

    $i++; 
    if ($i % 3 == 0) { echo '</tr><tr>'; } 
} 
0

<table> 
<?php 
    for($i=0; $i<12; $i++) { 
     if($i%3==0){ 
      echo "<tr>"; 
     } 
     echo "<td>Product - ".$i."<td/>"; 
    } 
?> 
</table> 

Outpuそれを使用しますt

Product - 0  Product - 1  Product - 2 
Product - 3  Product - 4  Product - 5 
Product - 6  Product - 7  Product - 8 
Product - 9  Product - 10  Product - 11 
関連する問題