2017-01-17 29 views
0

我试图在我的PHP Web应用程序中实现分页。我正在使用数据库的SQL服务器。分页没有发送页面编号在URL使用PHP和MS的Sql Server

在我的web应用程序中,我有一个在html表中显示的客户端列表。我有2个按钮,查看全部禁用使用 r。

我的分页工作正常,第一次尝试(我的意思是,如果我点击“查看全部”或“禁用的用户”它显示前10个记录)。如果我点击页面2的分页链接,URL显示....com/?pagenum=2并显示下一个11-20条记录,但如果我再次点击查看全部禁用用户按钮,它不会再显示前10条记录,它保持相同的链接....com/?pagenum=2

如何删除从链接?pagenum=2当我再次点击检视所有显示禁用按钮。

OR

有没有办法做到无分页发送页码入网址是什么?

<input type="submit" id="view_all" class="theme-btn" value="View Current Users" name="view_all"/> 
<input type="submit" class="theme-btn" value="Show Disabled Users" name="show_disabled"/> 

$tsql = "SELECT COUNT(SubscriptionID) FROM Subscription"; 
$stmt = sqlsrv_query($conn, $tsql); 
$rowsReturned = sqlsrv_fetch_array($stmt); 

    $numOfPages = ceil($rowsReturned[0]/$rowsPerPage); 
    for($i = 1; $i<=$numOfPages; $i++) 
    { 
     $pageNum = "?pageNum=$i"; 
     print("<a href=$pageNum>$i</a>&nbsp;&nbsp;"); 
    } 


$sql_query = "SELECT * FROM 
      (SELECT ROW_NUMBER() OVER(ORDER BY ClientID) 
      AS ID, Name FROM Client); 


if(isset($_GET['pageNum'])) 
{ 
    $highRowNum = $_GET['pageNum'] * $rowsPerPage; 
    $lowRowNum = $highRowNum - $rowsPerPage + 1; 
    echo "high:$highRowNum, low:$lowRowNum"; 
} 
else 
{ 
    $lowRowNum = 1; 
    $highRowNum = $rowsPerPage; 
} 

if(isset($_POST['show_disabled'])) 
{ 
    if(($emr!= 0) OR ($pas!= 0) OR ($pc!= 0)) 
    { $flag=0; 
    $sql_query = $sql_query . " WHERE Subscription.status = -1 AND ("; 
    GOTO C; 
    } 
} 

if(isset($_POST['view_all'])) 
{ 
    if(($emr!= 0) OR ($pas!= 0) OR ($pc!= 0)) 
    { $flag=0; 
    $sql_query = $sql_query . " WHERE (Subscription.status = 1 OR Subscription.status IS NULL) AND ("; 
    GOTO C; 
    } 


C: 

$sql_query = $sql_query. "AS TEST WHERE ClientID BETWEEN ? AND ? + 1" 

$params = array(&$lowRowNum, &$highRowNum); 
$stmt = sqlsrv_query($conn, $sql_query, $params, array("Scrollable" => 'static')); 
if($stmt === false) {die(print_r(sqlsrv_errors(), true));} 
GOTO A; 
} 


A: 
if ($stmt) 
{ 
    $rows = sqlsrv_has_rows($stmt); //echo $rows; 
    if ($rows === false) 
     echo "</br><center>There is no data for this selection.</center><br />"; 
    else 
    {     
     $rowsReturned = sqlsrv_num_rows($stmt); if ($rowsReturned === false) echo "Error in retrieveing row count."; 
else echo "rowsReturned:".$rowsReturned." " ; 

      echo "<table style='font-size: small; border-collapse: collapse;' id='clients'>    
      <th>SR NO</th> 
      <th>ID</th> 
      <th>Name</th> 


     echo "<tr><td>".$sr."</td><td>". $row['ID']."</td><td>". $row['Name']."</td></tr> 

     $sr++; 
    } 
} 
+0

恐怕你需要显示一些(相关的)代码。没有人可以帮助你。 – Jeff

+0

我已经添加了代码 – User27

+0

这是一个复杂的建设,你在这里,但我认为这'$ highRowNum = $ rowsPerPage;(在'if(isset ['$ _ GET ['pagenum']))else {}')应该是'$ highRowNum = $ numOfPages * $ rowsPerPage;' – Jeff

回答

0

您可以使用jQuery插件数据表,这将有助于您申请分页和搜索functionaliti ... 或者你可以使用Ajax的分页去。