我正在处理一个项目,该项目从数据库中获取某些记录并显示在表中。获取的记录(行)数取决于我给定的条件。所有这些对我来说都很好。
我的挑战是,我想显示一个序列号列(SN),其结果集编号为1、2、3、4等,具体取决于找到的行数。虽然我的数据库有id
列,它在INSERT
命令期间自动递增,但是,如果我获取这个id
列的值(对我来说很好),它会给我那些存储的数值,而不是1、2、3等。下面的代码是我使用的,对我来说也很好,只是在列下面填充1、2,3、4等SN列。
$output ="SELECT * FROM guest_tb where((arrival_day='$arrival_day') and (arrival_month='$arrival_month') and (arrival_year='$arrival_year')) order by names asc";
$query=mysql_query($output);
//$cnt=mysql_num_rows($query);
while($result=mysql_fetch_array($query)) {?> <tr>
<td><div align="center" class="style61">
<div align="left"><?php // Here comes the code for serial number </div></div></td>
<td><div align="center" class="style61">
<div align="left"><?php echo $result['names']; if(($result['room_number'])!=="") {echo " (Room ".$result['room_number'].")";} ?></div>
</div></td>
<td><div align="center" class="style61"><?php echo number_format($result['room_rate'],0,',',',')." NGN" //echo ", ". $result['Website'];?></div>
<div align="center"></div></td>
<td><div align="right" class="style61"><?php echo number_format($result['amount_paid'],0,',',',')." NGN";?></div></td>
<td align="center"><div align="center" class="style61"><?php echo $result['remark'];?></div> </td>
</tr>
<?php }
?>
根据我的理解。。
在while循环中保持一个计数器。对于下一页(若要分页),请将此计数器的值设置为
counter=(当前页面*每页项目数)+1
希望这能有所帮助。。
首先,我定义了一个计数器,用于计算提取的行数:"$cnt"
$output="SELECT*FROM guest_tb,其中((arrival_day='$arrival_day')和(arrival_month='$rrival_month')以及(arrivat_year='$arrival_year'))按名称asc排序";$query=mysql_query($output);$cnt=mysql_num_rows($query);
然后,初始化变量$i=1,之后在while循环中,我为while循环给出了2个条件:while($result=mysql_fetch_array($query)和$i<$cnt)
因此,while循环的第一个条件后来用于从数据库中获取记录并显示在表中。
最后,在显示的表格中,我制作了"SN"列,并使用此代码创建序列号(我正在查找的内容)。。。序列号取决于提取的记录数,也就是说,如果从数据库中提取了3条记录,序列号将从1开始,并停止在3——$cnt的值。这是一个简单的代码:
echo$i。"
";$i++;
仅此而已。希望大家能发现这个有用。