php产品目录的表格布局

时间:2012-03-10 19:54:37

标签: php html-table shopping-cart

我用PHP创建了一个产品目录,我希望产品像网格一样呈现在一个表格中,所以它在一行上并排放置3个产品,然后在下面进行,依此类推。我已经得到了所以产品水平重复,我只是不知道如何让它在三种产品后自动启动新产品线。

这是我目前的代码:

<?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);

?>

3 个答案:

答案 0 :(得分:2)

在循环中使用索引变量:

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

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

答案 1 :(得分: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 :(得分:0)

使用它

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

<强>输出

Product - 0     Product - 1     Product - 2 
Product - 3     Product - 4     Product - 5 
Product - 6     Product - 7     Product - 8 
Product - 9     Product - 10        Product - 11