私のPHP Webアプリケーションでページネーションを実装しようとしています。私はDB用のSQL Serverを使用しています。PHP&MS SQL Serverを使用してURLにページ番号を送信せずにページ番号を付けよう
私のWebアプリケーションでは、htmlテーブルに表示されるクライアントのリストがあります。私は2つのボタンを持っていますとを無効にしてください r。 (私は「ビューすべて」または「無効なユーザー」は、最初の10件のレコードを示しをクリックした場合、私は意味。)
私のページングが最初の試みのために正常に動作します。ページ番号2のページングリンクをクリックすると、URLが....com/?pagenum=2
と表示され、次の11-20レコードが表示されますが、をすべて表示すると、またはが無効になります。ボタン、それは同じリンク....com/?pagenum=2
にとどまります。私は再びビューをクリックしたときに、私はリンクから?pagenum=2
を削除するにはどうすればよい
はすべてまたはは無効ボタンを表示します。
OR
URLにページ番号を送信せずにページングを行うための方法はありますか?
<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> ");
}
$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++;
}
}
いくつかの(関連性のある)コードを表示する必要があります。それがなければ誰もあなたを助けることができません。 – Jeff
私はコード – User27
を追加しました。これはあなたがここにある複雑な文法ですが、この '$ highRowNum = $ rowsPerPage;'(if(isset ['pagenum']))else {} ') '$ highRowNum = $ numOfPages * $ rowsPerPage;' – Jeff