用PHP创建一个动态表 [英] Creating a dynamic table with PHP

查看:149
本文介绍了用PHP创建一个动态表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试用PHP创建一个动态表。我有一个页面显示数据库中的所有图片。
我需要的表只有5列。如果返回超过5张照片,应该创建一个新行,剩下的照片的显示将会继续。



任何人都可以帮忙?



代码到这里:
主页中的代码: -

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

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;

此代码正在创建一行。我不能想到如何获得多行... !!

解决方案

  $ maxcols = 5; 
$ i = 0;

//打开表和第一行
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 ++;

}

//添加空的< td>是连续的单元格数量:
while($ i <= $ maxcols){
echo< td>& nbsp;< / td>;
$ i ++;
}

//关闭表行和表
echo< / tr>;
echo< / table>;

我还没有测试过,但我的狂野猜测是这样的。只要循环浏览您的数据集与图像,只要你没有制作5 < td> ,添加一个。一旦达到5,关闭该行并创建一个新行。



此脚本应该给你如下所示。这显然取决于你有多少图像,我假设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>& nbsp;< / td>
< td>& nbsp;< / td>
< td>& nbsp;< td>
< / tr>
< / table>


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.

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:

$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 ... !!

解决方案

$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>&nbsp;</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.

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.

<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>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;<td>
    </tr>
</table>

这篇关于用PHP创建一个动态表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆