使用 PHP 创建动态表
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/7885871/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Creating a dynamic table with PHP
提问by maxxon15
I'm trying to make a dynamic table with PHP. I have a page which displays all the pictures from a database. I need the table to be of 5 columns only. If more than 5 pictures are returned, it should create a new row and the displaying of the rest of the pics would continue.
我正在尝试用 PHP 制作一个动态表。我有一个页面显示数据库中的所有图片。我只需要该表为 5 列。如果返回的图片超过 5 张,则应创建一个新行,其余图片将继续显示。
Can anyone please help?
有人可以帮忙吗?
Codes go here: Code in the main page:-
代码在此处:主页中的代码:-
<table>
<?php
$all_pics_rs=get_all_pics();
while($pic_info=mysql_fetch_array($all_pics_rs)){
echo "<td><img src='".$pic_info['picture']."' height='300px' width='400px' /></td>";
}
?>
</table>
The get_all_pics() function:
get_all_pics() 函数:
$all_pics_q="SELECT * FROM pics";
$all_pics_rs=mysql_query($all_pics_q,$connection1);
if(!$all_pics_rs){
die("Database query failed: ".mysql_error());
}
return $all_pics_rs;
This code is creating a single row. I can't think of how I can get multiple rows ... !!
此代码正在创建单行。我想不出如何获得多行......!
回答by Jules
$maxcols = 5;
$i = 0;
//Open the table and its first row
echo "<table>";
echo "<tr>";
while ($image = mysql_fetch_assoc($images_rs)) {
if ($i == $maxcols) {
$i = 0;
echo "</tr><tr>";
}
echo "<td><img src=\"" . $image['src'] . "\" /></td>";
$i++;
}
//Add empty <td>'s to even up the amount of cells in a row:
while ($i <= $maxcols) {
echo "<td> </td>";
$i++;
}
//Close the table row and the table
echo "</tr>";
echo "</table>";
I haven't tested it yet but my wild guess is something like that. Just cycle through your dataset with the images and as long as you didn't make 5 <td>
's yet, add one. Once you reach 5, close the row and create a new row.
我还没有测试过,但我的疯狂猜测是这样的。只需使用图像循环浏览数据集,只要您还没有制作 5 <td>
,就添加一个。达到 5 后,关闭该行并创建一个新行。
This script is supposed to give you something like the following. It obviously depends on how many images you have and I assumed that 5 (defined it in $maxcols) was the maximum number of images you want to display in a row.
该脚本应该为您提供如下内容。这显然取决于您拥有的图像数量,我假设 5(在$maxcols 中定义)是您想要连续显示的最大图像数量。
<table>
<tr>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
</tr>
<tr>
<td><img src="image1.jpg" /></td>
<td><img src="image1.jpg" /></td>
<td> </td>
<td> </td>
<td> <td>
</tr>
</table>
回答by Tom
$max_per_row = 5;
$item_count = 0;
echo "<table>";
echo "<tr>";
foreach ($images as $image)
{
if ($item_count == $max_per_row)
{
echo "</tr><tr>";
$item_count = 0;
}
echo "<td><img src='" . $image . "' /></td>";
$item_count++;
}
echo "</tr>";
echo "</table>";