
php问题 图片排列及分页请教
这是我写的代码指定类别数据分页有误但可以调出还有图片我想按照每行三个排布请问代码如何写,谢谢!<tablewidth="210"height="100"border="0...
这是我写的代码 指定类别数据分页有误 但可以调出 还有图片我想按照每行三个排布 请问代码如何写,谢谢!
<table width="210" height="100" border="0" cellpadding="0" cellspacing="0">
<tr><?
$maxnum = 10; //每页显示记录条数
if(empty($_POST['keyword']))
{
$query1 = "SELECT COUNT(*) AS totalrows FROM sys_product ";
}
else
{
$query1 = "SELECT COUNT(*) AS totalrows FROM sys_product where proname like '%".$_POST['keyword']."%' ";
}
$result1 = mysql_query($query1, $db) or die(mysql_error());
$row1 = mysql_fetch_assoc($result1);
$totalRows1 = $row1['totalrows']; //数据集数据总条数
$totalpages = ceil($totalRows1/$maxnum);//计算可分页总数,ceil()为上舍函数
mysql_query('set names "gb2312"');
if(!isset($_GET['page']) || !intval($_GET['page']) || $_GET['page'] > $totalpages) $page = 1; //对3种出错进行默认处理
//在url参数page不存在时,page不为10进制数时,page大于可分页数时,默认为1
else $page = $_GET['page'];
$startnum = ($page - 1)*$maxnum; //从数据集第$startnum条开始取,注意数据集是从0开始的
if(empty($_POST['keyword']))
{
$query = "SELECT * FROM sys_product where sname = '订餐' order by id desc LIMIT $startnum,$maxnum"; //选择出符合要求的数据 从$startnum条数据开始,选出$maxnum行
}
else
{
$query = "SELECT * FROM sys_product where proname like '%".$_POST['keyword']."%' order by id desc LIMIT $startnum,$maxnum";//选择出符合要求的数据 从$startnum条数据开始,选出$maxnum行
}
$result = mysql_query($query, $db) or die(mysql_error());
While($row=mysql_fetch_array($result)){
?>
<td width="31%" rowspan="2" style="padding:4px 8px 4px 0px"><a href="dc_detail.php?id=<?=$row['Id']?>"><img src="<? if($row['propic']==""){ echo "/images/no.jpg";} else {echo "/admin/".$row['propic']; }; ?>" name="dish_image" width="90" height="70" border="0" id="dish_image"></a></td>
<td width="69%" height="25"><span class="STYLE21"><?php echo $row['proname']; ?> </span><span class="STYLE23">(<?=$row['pronum']?>份)</span> </td>
</tr>
<tr>
<td class="chinazi">非常好吃非常地道的<br />
<span class="STYLE22">CALORIE</span>:<?=$row['kll']?><br />
价格:<span class="STYLE25"><?php echo number_format($row['proprice'], 2); ?></span><span class="STYLE26">元</span><br/>
<a href="#" style="float:right"> 详细>></a></td>
</tr><? }?>
</table> 展开
<table width="210" height="100" border="0" cellpadding="0" cellspacing="0">
<tr><?
$maxnum = 10; //每页显示记录条数
if(empty($_POST['keyword']))
{
$query1 = "SELECT COUNT(*) AS totalrows FROM sys_product ";
}
else
{
$query1 = "SELECT COUNT(*) AS totalrows FROM sys_product where proname like '%".$_POST['keyword']."%' ";
}
$result1 = mysql_query($query1, $db) or die(mysql_error());
$row1 = mysql_fetch_assoc($result1);
$totalRows1 = $row1['totalrows']; //数据集数据总条数
$totalpages = ceil($totalRows1/$maxnum);//计算可分页总数,ceil()为上舍函数
mysql_query('set names "gb2312"');
if(!isset($_GET['page']) || !intval($_GET['page']) || $_GET['page'] > $totalpages) $page = 1; //对3种出错进行默认处理
//在url参数page不存在时,page不为10进制数时,page大于可分页数时,默认为1
else $page = $_GET['page'];
$startnum = ($page - 1)*$maxnum; //从数据集第$startnum条开始取,注意数据集是从0开始的
if(empty($_POST['keyword']))
{
$query = "SELECT * FROM sys_product where sname = '订餐' order by id desc LIMIT $startnum,$maxnum"; //选择出符合要求的数据 从$startnum条数据开始,选出$maxnum行
}
else
{
$query = "SELECT * FROM sys_product where proname like '%".$_POST['keyword']."%' order by id desc LIMIT $startnum,$maxnum";//选择出符合要求的数据 从$startnum条数据开始,选出$maxnum行
}
$result = mysql_query($query, $db) or die(mysql_error());
While($row=mysql_fetch_array($result)){
?>
<td width="31%" rowspan="2" style="padding:4px 8px 4px 0px"><a href="dc_detail.php?id=<?=$row['Id']?>"><img src="<? if($row['propic']==""){ echo "/images/no.jpg";} else {echo "/admin/".$row['propic']; }; ?>" name="dish_image" width="90" height="70" border="0" id="dish_image"></a></td>
<td width="69%" height="25"><span class="STYLE21"><?php echo $row['proname']; ?> </span><span class="STYLE23">(<?=$row['pronum']?>份)</span> </td>
</tr>
<tr>
<td class="chinazi">非常好吃非常地道的<br />
<span class="STYLE22">CALORIE</span>:<?=$row['kll']?><br />
价格:<span class="STYLE25"><?php echo number_format($row['proprice'], 2); ?></span><span class="STYLE26">元</span><br/>
<a href="#" style="float:right"> 详细>></a></td>
</tr><? }?>
</table> 展开
2个回答
展开全部
你有没有觉得你的程序看起来很累~
我提几个意见,看明白了你的问题可能就解决了~
一、对于参数的判断要修改,你点下一页的时侯,可能是GET传送,不一定是POST,所以不能只从POST获取,否则下一页的时侯就变成显示所有数据了。判断是否有参数的语句可以统一写,不用获取总数和内容的时侯都判断,例如可以这样写:
if(isset($_REQUEST['keyword'])) $where="where proname like '%{$_REQUEST['keyword']}%'";
else $where='';
$query1 = "SELECT COUNT(*) AS totalrows FROM sys_product $where";
$query = "SELECT * FROM sys_product $where order by id desc LIMIT $startnum,$maxnum";
二、不要反复使用<? ?>,整个程序可以就写在一对<?php ?>里面,使用定界符号可以实现,例如:
while ($row=mysql_fetch_array($result)){
$propic = $row['propic']=="" ? "/images/no.jpg" : "/admin/".$row['propic'];
$price = number_format($row['proprice'], 2);
echo <<<END
<tr>
<td width="31%" rowspan="2" style="padding:4px 8px 4px 0px">
<a href="dc_detail.php?id={$row['Id']}">
<img src="{$propic}" name="dish_image" width="90" height="70" border="0" id="dish_image"></a></td>
<td width="69%" height="25">
<span class="STYLE21">{$row['proname']}</span>
<span class="STYLE23">{$row['pronum']}份)</span> </td>
</tr>
<tr>
<td class="chinazi">非常好吃非常地道的<br />
<span class="STYLE22">CALORIE</span>:{$row['kll']}<br />
价格:<span class="STYLE25">{$price}</span>
<span class="STYLE26">元</span><br/>
<a href="#" style="float:right"> 详细>></a></td>
</tr>
END;
}
三、最后一个问题,你现在每个显示的两行(两个<tr>),你希望修改为每行三个,其实很简单,我只提示一下,可以把现在每个循环的内容改在一个<table>里面,然后使用一个大的<table>实现每行三个,例如下面的结果:
echo '<table>';//最大的table>
$i=0;//已经输出的个数
while ($row=mysql_fetch_row(...)){
if ($i % 3==0) echo '<tr>';
echo '<td><table>';
//这里写现在while里面的所有语句
echo '</table>';
$i++;
}
echo '</table>';//最大的table>
我提几个意见,看明白了你的问题可能就解决了~
一、对于参数的判断要修改,你点下一页的时侯,可能是GET传送,不一定是POST,所以不能只从POST获取,否则下一页的时侯就变成显示所有数据了。判断是否有参数的语句可以统一写,不用获取总数和内容的时侯都判断,例如可以这样写:
if(isset($_REQUEST['keyword'])) $where="where proname like '%{$_REQUEST['keyword']}%'";
else $where='';
$query1 = "SELECT COUNT(*) AS totalrows FROM sys_product $where";
$query = "SELECT * FROM sys_product $where order by id desc LIMIT $startnum,$maxnum";
二、不要反复使用<? ?>,整个程序可以就写在一对<?php ?>里面,使用定界符号可以实现,例如:
while ($row=mysql_fetch_array($result)){
$propic = $row['propic']=="" ? "/images/no.jpg" : "/admin/".$row['propic'];
$price = number_format($row['proprice'], 2);
echo <<<END
<tr>
<td width="31%" rowspan="2" style="padding:4px 8px 4px 0px">
<a href="dc_detail.php?id={$row['Id']}">
<img src="{$propic}" name="dish_image" width="90" height="70" border="0" id="dish_image"></a></td>
<td width="69%" height="25">
<span class="STYLE21">{$row['proname']}</span>
<span class="STYLE23">{$row['pronum']}份)</span> </td>
</tr>
<tr>
<td class="chinazi">非常好吃非常地道的<br />
<span class="STYLE22">CALORIE</span>:{$row['kll']}<br />
价格:<span class="STYLE25">{$price}</span>
<span class="STYLE26">元</span><br/>
<a href="#" style="float:right"> 详细>></a></td>
</tr>
END;
}
三、最后一个问题,你现在每个显示的两行(两个<tr>),你希望修改为每行三个,其实很简单,我只提示一下,可以把现在每个循环的内容改在一个<table>里面,然后使用一个大的<table>实现每行三个,例如下面的结果:
echo '<table>';//最大的table>
$i=0;//已经输出的个数
while ($row=mysql_fetch_row(...)){
if ($i % 3==0) echo '<tr>';
echo '<td><table>';
//这里写现在while里面的所有语句
echo '</table>';
$i++;
}
echo '</table>';//最大的table>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询