[英]pagination and serial number php mysql
Hello I have following code with serial NO. 您好,我有以下带有序列号的代码。 and pagination.
和分页。 pagination is working but when I go to next page then serial number start from 1. I have limited 10 row in every page so I want to start next page from SN.
分页有效,但是当我转到下一页时,序列号从1开始。每页限制有10行,因此我想从SN开始下一页。 11-20 , 21-30 from 3rd page .
第3页11-20、21-30。 please help me.
请帮我。
<?php include_once("../database/config.php"); $start=0; $limit=10; $sn=$start; if(isset($_GET['mainmdsid'])) { $mainmdsid=$_GET['mainmdsid']; $start=($mainmdsid-1)*$limit; } else{ $mainmdsid=1; } $result = mysqli_query($mysqli, "SELECT *from item , mainmds , school WHERE empid=$empid AND mainmds.itmid=item.itmid AND mainmds.scid=school.scid LIMIT $start, $limit"); ?> <table align="center" id="customers"> <tr> <th>SN.</th> <th>Item Name</th> <th>Quantity</th> <th>Status</th> <th>If unsatisfactory provide comments </th> <th>Date</th> <th>School Name</th> <th>Variant</th> <th>Thana</th> <th>If others then please specify </th> <th>Remove</th> </tr> <?php //while($res = mysql_fetch_array($result)) { // mysql_fetch_array is deprecated, we need to use mysqli_fetch_array while($res = mysqli_fetch_array($result)) { $sn+=1; $sdate = $res['sdate']; $fmdate = strtotime($sdate); echo "<tr>"; echo "<td>".$sn."</td>"; echo "<td>".$res['itmname']."</td>"; if (strpos($empbranch,"NFO")!==false) { echo "<td>".$res['DNFO']."</td>"; } else if (strpos($empbranch,"DFO")!==false) { echo "<td>".$res['DDFO']."</td>"; } else if (strpos($empbranch,"CO")!==false) { echo "<td>".$res['DCO']."</td>"; } else if (strpos($empbranch,"SHARP")!==false) { echo "<td>".$res['DSHARP']."</td>"; } else if (strpos($empbranch,"Other")!==false) { echo "<td>".$res['DOther']."</td>"; } echo "<td>".$res['istatus']."</td>"; echo "<td>".$res['usstatus']."</td>"; echo "<td>".$res['sdate']."</td>"; echo "<td>" .date('d M Y', $fmdate). "</td>"; echo "<td>".$res['ivariant']."</td>"; echo "<td>".$res['scthana']."</td>"; echo "<td>".$res['oscname']."</td>"; echo "<td><a href=\\"delete.php?mainmdsid=$res[mainmdsid]\\" onClick=\\"return confirm('Are you sure you want to delete?')\\">Delete</a></td></tr>"; } ?> </table> <?php //fetch all the data from database. $rows=mysqli_num_rows(mysqli_query($dbconfig,"SELECT *from item , mainmds , school WHERE empid=$empid AND mainmds.itmid=item.itmid AND mainmds.scid=school.scid")); //calculate total page number for the given table in the database $total=ceil($rows/$limit);?> <table align="center" border="1"> <?php if($mainmdsid>1) { //Go to previous page to show previous 10 items. If its in page 1 then it is inactive echo "<tr><td><a href='?mainmdsid=".($mainmdsid-1)."' class='button'>PREVIOUS</a></td>"; } if($mainmdsid!=$total) { ////Go to previous page to show next 10 items. echo "<td><a href='?mainmdsid=".($mainmdsid+1)."' class='button'>NEXT</a></td>"; } ?> <?php //show all the page link with page number. When click on these numbers go to particular page. for($i=1;$i<=$total;$i++) { if($i==$mainmdsid) { echo "<td>".$i."</td>"; } else { echo "<td><a href='?mainmdsid=".$i."'>".$i."</a></td>"; } } ?> </tr> </table>
just move your $sn
initialization after if condition 只需在条件后移动
$sn
初始化
$start=0;
$limit=10;
if(isset($_GET['mainmdsid']))
{
$mainmdsid=$_GET['mainmdsid'];
$start=($mainmdsid-1)*$limit;
}
else{
$mainmdsid=1;
}
$sn=$start;
change your code to this... it will work 将您的代码更改为此...它将起作用
<?php include_once("../database/config.php");
$start=0;
$limit=10;
if(isset($_GET['mainmdsid']))
{
$mainmdsid=$_GET['mainmdsid'];
$start=($mainmdsid-1)*$limit; // here we are multiplying page number with limit.
}
$sn=$start;
if(isset($_GET['mainmdsid']))
{
$mainmdsid=$_GET['mainmdsid'];
$start=($mainmdsid-1)*$limit;
}
else{
$mainmdsid=1;
}
$result = mysqli_query($mysqli, "SELECT *from item , mainmds , school WHERE empid=$empid AND mainmds.itmid=item.itmid AND mainmds.scid=school.scid LIMIT $start, $limit");
?>
<table align="center" id="customers">
<tr>
<th>SN.</th>
<th>Item Name</th>
<th>Quantity</th>
<th>Status</th>
<th>If unsatisfactory provide comments </th>
<th>Date</th>
<th>School Name</th>
<th>Variant</th>
<th>Thana</th>
<th>If others then please specify </th>
<th>Remove</th>
</tr>
<?php
//while($res = mysql_fetch_array($result)) { // mysql_fetch_array is deprecated, we need to use mysqli_fetch_array
while($res = mysqli_fetch_array($result)) {
$sn+=1;
$sdate = $res['sdate'];
$fmdate = strtotime($sdate);
echo "<tr>";
echo "<td>".$sn."</td>";
echo "<td>".$res['itmname']."</td>";
if (strpos($empbranch,"NFO")!==false) {
echo "<td>".$res['DNFO']."</td>";
}
else if (strpos($empbranch,"DFO")!==false) {
echo "<td>".$res['DDFO']."</td>";
}
else if (strpos($empbranch,"CO")!==false) {
echo "<td>".$res['DCO']."</td>";
}
else if (strpos($empbranch,"SHARP")!==false) {
echo "<td>".$res['DSHARP']."</td>";
}
else if (strpos($empbranch,"Other")!==false) {
echo "<td>".$res['DOther']."</td>";
}
echo "<td>".$res['istatus']."</td>";
echo "<td>".$res['usstatus']."</td>";
echo "<td>".$res['sdate']."</td>";
echo "<td>" .date('d M Y', $fmdate). "</td>";
echo "<td>".$res['ivariant']."</td>";
echo "<td>".$res['scthana']."</td>";
echo "<td>".$res['oscname']."</td>";
echo "<td><a href=\"delete.php?mainmdsid=$res[mainmdsid]\" onClick=\"return confirm('Are you sure you want to delete?')\">Delete</a></td></tr>";
}
?>
</table>
<?php
//fetch all the data from database.
$rows=mysqli_num_rows(mysqli_query($dbconfig,"SELECT *from item , mainmds , school WHERE empid=$empid AND mainmds.itmid=item.itmid AND mainmds.scid=school.scid"));
//calculate total page number for the given table in the database
$total=ceil($rows/$limit);?>
<table align="center" border="1">
<?php if($mainmdsid>1)
{
//Go to previous page to show previous 10 items. If its in page 1 then it is inactive
echo "<tr><td><a href='?mainmdsid=".($mainmdsid-1)."' class='button'>PREVIOUS</a></td>";
}
if($mainmdsid!=$total)
{
////Go to previous page to show next 10 items.
echo "<td><a href='?mainmdsid=".($mainmdsid+1)."' class='button'>NEXT</a></td>";
}
?>
<?php
//show all the page link with page number. When click on these numbers go to particular page.
for($i=1;$i<=$total;$i++)
{
if($i==$mainmdsid) { echo "<td>".$i."</td>"; }
else { echo "<td><a href='?mainmdsid=".$i."'>".$i."</a></td>"; }
}
?>
</tr>
</table>
On click off every next page button, increase the limit of $start
from 0 to +10. 在单击每个下一页按钮时,将
$start
的限制从0增加到+10。 and again call your DB Query, and for previous button decrement value of $start
to -10. 然后再次调用您的数据库查询,并将先前的按钮递减值
$start
为-10。 And also use variable currentPage
and sets it value to 1 in start. 并且还使用变量
currentPage
并将其值在开始时设置为1。
Here is sample code which you can use : 这是您可以使用的示例代码:
$currentPage = 1;
$start = 0;
$recordPerPage= 10;
//First query your database here, after that do some work on previous and next button clicked
if(array_key_exists('next',$_POST)){
$start = (currentPage * recordPerPage) + 1;
currentPage++;
}
if(array_key_exists('previous',$_POST)){
if (currentPage == 2) {
offSet = 0;
currentPage--;
} else {
offSet = offSet - recordPerPage;
currentPage--;
}
}
This way you can handle current page, limit and offset. 这样,您可以处理当前页面,限制和偏移。 Remember to call DB Query on next and previous button clicked
记住在单击下一个和上一个按钮时调用DB查询
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.