繁体   English   中英

分页和序列号php mysql

[英]pagination and serial number php mysql

您好,我有以下带有序列号的代码。 和分页。 分页有效,但是当我转到下一页时,序列号从1开始。每页限制有10行,因此我想从SN开始下一页。 第3页11-20、21-30。 请帮我。

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

只需在条件后移动$sn初始化

$start=0;
$limit=10;

if(isset($_GET['mainmdsid']))
{
    $mainmdsid=$_GET['mainmdsid'];
    $start=($mainmdsid-1)*$limit;
}
else{
    $mainmdsid=1;
}
$sn=$start;

将您的代码更改为此...它将起作用

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

在单击每个下一页按钮时,将$start的限制从0增加到+10。 然后再次调用您的数据库查询,并将先前的按钮递减值$start为-10。 并且还使用变量currentPage并将其值在开始时设置为1。

这是您可以使用的示例代码:

$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--;
    }
}

这样,您可以处理当前页面,限制和偏移。 记住在单击下一个和上一个按钮时调用DB查询

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM