请问一个用php显示图片和图片名称的循环思路,请多多指教!!!谢谢! 首先计算图片要分几行显示然后添加相应行数的表格,在在每行里面添加一个2行4列的表格,在每列分别显示图片和图片的名称,这个我在ASP里试过可以的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我写一个吧,比如说是一行三列的显示方法:没有测试,请自行调试一下思路也就是下面的这样了。<?/*author:fibona 熊祥众****************///连接数据库从数据库中取数据(根据情况自行修改) mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $sql="select * from table";//从数据库选择图片的语句. $result = mysql_query($sql); echo "<table width=760 border=0 BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor="#99CCFF"> $i=0;//初始化计数,以便按格式进行排列。 $imagpath="显示图片的图径";//显示图片的图径,数据库中只存入图片的名称 echo "<TR>" while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { //这里对图片按格式进行显示:每行三列,如果最后一行没有三个数据则补上空格显示 $i++; echo "<TD width=\"33%\" ><img src=\"".$imagepath.$row['img']."\" border=0></TD>"; if($i%3==0&i>0) { echo "</TR><TR>"; } } if($i>0&&$i%3!=0)//有数据,并且最后一行,不足每行的条数,就输出每行条数减去最后一行已有的数的个数的空格符列。 { for($j=0;$j<($i%3);$j++) echo "<TD width=\"33%\" > </TD>"; } echo "</TR> "; echo "</TABLE>"; mysql_free_result($result);?> 刚才忘记了图片下成显示图片名称了,加个"<br>"就可以了。如下<?//连接数据库从数据库中取数据(根据情况自行修改) mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $sql="select * from table";//从数据库选择图片的语句. $result = mysql_query($sql); echo "<table width=760 border=0 BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor="#99CCFF"> $i=0;//初始化计数,以便按格式进行排列。 $imagpath="显示图片的图径";//显示图片的图径,数据库中只存入图片的名称 echo "<TR>" while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { //这里对图片按格式进行显示:每行三列,如果最后一行没有三个数据则补上空格显示 $i++; echo "<TD width=\"33%\" ><img src=\"".$imagepath.$row['img']."\" border=0><br>".$row['img']."</TD>"; if($i%3==0&i>0) { echo "</TR><TR>"; } } if($i>0&&$i%3!=0)//有数据,并且最后一行,不足每行的条数,就输出每行条数减去最后一行已有的数的个数的空格符列。 { for($j=0;$j<($i%3);$j++) echo "<TD width=\"33%\" > </TD>"; } echo "</TR> "; echo "</TABLE>"; mysql_free_result($result);?> <?/* author:fibona *** *********//* date: 2004:07-28 PM *******//*对开始的那个程序的改进,以便能够对图片与图片名的高度的可控制性与直观性*///连接数据库从数据库中取数据(根据情况自行修改) mysql_connect("localhost", "mysql_user", "mysql_password") or die("Could not connect: " . mysql_error()); mysql_select_db("mydb"); $sql="select * from table";//从数据库选择图片的语句. $result = mysql_query($sql); echo "<table width=760 border=0 BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor="#99CCFF"> $i=0;//初始化计数,以便按格式进行排列。 $imagpath="显示图片的图径";//显示图片的图径,数据库中只存入图片的名称 echo "<TR>" while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { //这里对图片按格式进行显示:每行三列,如果最后一行没有三个数据则补上空格显示 $i++; //通过在每一个td里面输出一个表格来实现不同的两行,并可以对每行的高度进行控制。 echo "<TD width=\"33%\" ><table border=0 cellpadding=0 cellspacing=0 bgcolor=\"#99CCFF\"><TR><TD height=60><img src=\"".$imagepath.$row['img']."\" border=0 width=50 height=50 ></TD></TR><TR><TD height=30>".$row['img']."</TD></TR></table></TD>"; if($i%3==0&i>0) { echo "</TR><TR>"; } } if($i>0&&$i%3!=0)//有数据,并且最后一行,不足每行的条数,就输出每行条数减去最后一行已有的数的个数的空格符列。 { for($j=0;$j<($i%3);$j++) echo "<TD width=\"33%\" > </TD>"; } echo "</TR> "; echo "</TABLE>"; mysql_free_result($result);?> DX,上面的代码是把图片放在数组里,循环显示出来,我看得明白,非常感谢!还有一个问题:请问哪段代码是把可以图片的名称在图片的下面那个<td></td>显示呢?请多多指教!!!非常感谢!! TO: 52juanjuan(Fibona),请多多指教!! http://www.sichuantour.com/scene/picture.asp中的图片和说明文字是分做两行写的这就要缓存输出行了基本算法如下$cell = n; //每行的列数$row1 = ""; //缓存图片行$row2 = ""; //缓存文字行$i = 0; //列计数器while(...) { //循环读取查询结果 if($i == 0) { $row1 = "<tr>"; $row2 = "<tr>"; } $row1 .= "<td>".图片连接."</td>"; $row2 .= "<td>".说明文字."</td>"; $i++; //计数器加1 if($i == $cell) { echo $row1."</tr>".$row2."</tr>"; //输出缓存内容 $i = 0; }}$i = $cell-$i; //计算缺少的单元格数,因为输出的内容不一定能被列数整除。当不能整除时,缓存的内容不会在循环中输出if($i > 0) { echo $row1."<td colspan=$i></td></tr>"; echo $row2."<td colspan=$i></td></tr>"; } xuzuning(唠叨) 说得很好,楼主可以考穿!但楼主你所说的哪个网站图片显示还有问题是,他们还有一个大类(如九寨沟、黄龙)只有点进去以后才是你所说的图片显示方式! 总之我开始开窍了,我只需要思路就OK了谢谢大家!!PS:我想问一下,你们通常实现这样的效果或者用途是把图片存到数据库,还是直接存图片的文件名,然后再通过路径把它读出来呢?我现在存在数据库里还要用一个文件把它从数据库里读出来再显示。请大家发表发表意见,指点一下小弟!!非常感谢!!! 只存id和图片名,图片另外放硬盘上到时候只需要配置一下图片路径就可以了显示的时候就是<img src='图片路径/图片名称'>给你一段程序看:<? //图片列数、行数(可以赋值,也可以从其他地方获取配置) $photorows = 4; $photolines = 5; $list_table .= "<table><tr>"; //执行数据库查询 //过程省略 if(有数据) { $i = 0; //循环 //获得查询的数据集(一般应该是一个数组) while(数据集/数组) { $i++; //找图片地址 $Path_photo = "<img src='图片地址' border='0' width='85' height='115'>"; $list_table .= "<td>"; //嵌套一个表格来专门布局图片(可以对这个表格进行扩展以显示标题及子类个数等等信息) $list_table .= "<table><tr><td>".$Path_photo."</td></tr></table></td>"; $list_table .= "</td>"; //这里就是按列数来控制 if ($i%$photorows==0) { $list_table .= "</tr><tr>"; } //如果打到显示的总数则跳出循环 if ( $i==intval(($photorows*$photolines)) ) { break; } }//end while } $list_table .= "</tr></table>"; //输出html echo $list_table;?> php eval()'d code问题 PHP截取从数据库中读出的数据 发几道面试题大家看看? 表单验证问题,求解答 下面这句代码哪里错了 http头里的某一个变量怎么取? 各位高手帮忙,谢谢!! 取出id的问题 谁帮我找个php的私活干干 $now = new DateTime;出错,奇怪了。 请教!!怎么样才能定时打开某个页面或是执行某个函数 也问关于mysql_num_rows()一个奇怪的问题,附一个上传是出现的问题
<?
/*author:fibona 熊祥众****************/
//连接数据库从数据库中取数据(根据情况自行修改)
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$sql="select * from table";//从数据库选择图片的语句.
$result = mysql_query($sql);
echo "<table width=760 border=0 BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor="#99CCFF">
$i=0;//初始化计数,以便按格式进行排列。
$imagpath="显示图片的图径";//显示图片的图径,数据库中只存入图片的名称
echo "<TR>"
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
//这里对图片按格式进行显示:每行三列,如果最后一行没有三个数据则补上空格显示
$i++;
echo "<TD width=\"33%\" ><img src=\"".$imagepath.$row['img']."\" border=0></TD>";
if($i%3==0&i>0)
{
echo "</TR><TR>";
}
}
if($i>0&&$i%3!=0)//有数据,并且最后一行,不足每行的条数,就输出每行条数减去最后一行已有的数的个数的空格符列。
{
for($j=0;$j<($i%3);$j++)
echo "<TD width=\"33%\" > </TD>";
}
echo "</TR> ";
echo "</TABLE>";
mysql_free_result($result);
?>
//连接数据库从数据库中取数据(根据情况自行修改)
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$sql="select * from table";//从数据库选择图片的语句.
$result = mysql_query($sql);
echo "<table width=760 border=0 BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor="#99CCFF">
$i=0;//初始化计数,以便按格式进行排列。
$imagpath="显示图片的图径";//显示图片的图径,数据库中只存入图片的名称
echo "<TR>"
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
//这里对图片按格式进行显示:每行三列,如果最后一行没有三个数据则补上空格显示
$i++;
echo "<TD width=\"33%\" ><img src=\"".$imagepath.$row['img']."\" border=0><br>".$row['img']."</TD>";
if($i%3==0&i>0)
{
echo "</TR><TR>";
}
}
if($i>0&&$i%3!=0)//有数据,并且最后一行,不足每行的条数,就输出每行条数减去最后一行已有的数的个数的空格符列。
{
for($j=0;$j<($i%3);$j++)
echo "<TD width=\"33%\" > </TD>";
}
echo "</TR> ";
echo "</TABLE>";
mysql_free_result($result);
?>
/* author:fibona *** *********/
/* date: 2004:07-28 PM *******/
/*对开始的那个程序的改进,以便能够对图片与图片名的高度的可控制性与直观性*/
//连接数据库从数据库中取数据(根据情况自行修改)
mysql_connect("localhost", "mysql_user", "mysql_password") or
die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
$sql="select * from table";//从数据库选择图片的语句.
$result = mysql_query($sql);
echo "<table width=760 border=0 BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor="#99CCFF">
$i=0;//初始化计数,以便按格式进行排列。
$imagpath="显示图片的图径";//显示图片的图径,数据库中只存入图片的名称
echo "<TR>"
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
//这里对图片按格式进行显示:每行三列,如果最后一行没有三个数据则补上空格显示
$i++;
//通过在每一个td里面输出一个表格来实现不同的两行,并可以对每行的高度进行控制。
echo "<TD width=\"33%\" ><table border=0 cellpadding=0 cellspacing=0 bgcolor=\"#99CCFF\"><TR><TD height=60><img src=\"".$imagepath.$row['img']."\" border=0 width=50 height=50 ></TD></TR><TR><TD height=30>".$row['img']."</TD></TR></table></TD>";
if($i%3==0&i>0)
{
echo "</TR><TR>";
}
}
if($i>0&&$i%3!=0)//有数据,并且最后一行,不足每行的条数,就输出每行条数减去最后一行已有的数的个数的空格符列。
{
for($j=0;$j<($i%3);$j++)
echo "<TD width=\"33%\" > </TD>";
}
echo "</TR> ";
echo "</TABLE>";
mysql_free_result($result);
?>
这就要缓存输出行了
基本算法如下$cell = n; //每行的列数
$row1 = ""; //缓存图片行
$row2 = ""; //缓存文字行
$i = 0; //列计数器
while(...) { //循环读取查询结果
if($i == 0) {
$row1 = "<tr>";
$row2 = "<tr>";
}
$row1 .= "<td>".图片连接."</td>";
$row2 .= "<td>".说明文字."</td>";
$i++; //计数器加1
if($i == $cell) {
echo $row1."</tr>".$row2."</tr>"; //输出缓存内容
$i = 0;
}
}
$i = $cell-$i; //计算缺少的单元格数,因为输出的内容不一定能被列数整除。当不能整除时,缓存的内容不会在循环中输出
if($i > 0) {
echo $row1."<td colspan=$i></td></tr>";
echo $row2."<td colspan=$i></td></tr>";
}
到时候只需要配置一下图片路径就可以了
显示的时候就是<img src='图片路径/图片名称'>
给你一段程序看:
<? //图片列数、行数(可以赋值,也可以从其他地方获取配置)
$photorows = 4;
$photolines = 5; $list_table .= "<table><tr>";
//执行数据库查询
//过程省略
if(有数据)
{
$i = 0;
//循环
//获得查询的数据集(一般应该是一个数组)
while(数据集/数组)
{
$i++;
//找图片地址
$Path_photo = "<img src='图片地址' border='0' width='85' height='115'>";
$list_table .= "<td>";
//嵌套一个表格来专门布局图片(可以对这个表格进行扩展以显示标题及子类个数等等信息)
$list_table .= "<table><tr><td>".$Path_photo."</td></tr></table></td>";
$list_table .= "</td>"; //这里就是按列数来控制
if ($i%$photorows==0)
{
$list_table .= "</tr><tr>";
} //如果打到显示的总数则跳出循环
if ( $i==intval(($photorows*$photolines)) )
{
break;
}
}//end while
}
$list_table .= "</tr></table>"; //输出html
echo $list_table;?>