分页和序列号php mysql

时间:2017-07-13 07:10:04

标签: javascript php mysql pagination

你好我有以下代码序列号。和分页。 分页正在工作,但是当我转到下一页时,序列号从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>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

在条件

之后移动$sn初始化
$start=0;
$limit=10;

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

单击关闭每个下一页按钮,将$start的限制从0增加到+10。 并再次调用您的数据库查询,并将之前的按钮递减值$start调用为-10。 并且还使用变量currentPage并在start中将其值设置为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 Query