2016-09-20 72 views
-1

我正在開發一個頁面,用戶可以在分頁中輸入表格的限制。在我這樣做的時候,我輸入的數據被採集並且根據那個進行查詢。但是當我點擊該表的另一個頁面時,該值被重置爲默認值,我在此將其設置爲5。php動態分頁邏輯錯誤

<?php session_start(); ?> 
<a href="recordentry.php">Submit New record</a><br><br> 
<form method="post"> 
    <input type="text" name="dlimit"> 
    <input type="submit" name="submit"> 
</form> 
<?php 
$database = 'test'; 
require 'connection.php'; 
if(!isset($_POST['submit'])) 
{ 
    $limit = 5; 
} 
else 
{ 
    $dlimit = $_POST['dlimit']; 
    $limit = $dlimit; 
} 
@$id = $_GET['id']; 

if($id==""||$id==null) 
{ 
    $page=0; 
} 
else 
{ 
$page = ($id*$limit)-$limit; 
} 
    $qq ="select * from record limit $page,$limit"; 
    $result = $link -> query($qq); 
?> 
<table border="1"><th>ID</th> 
     <th>Name</th> 
     <th>qualification</th> 
     <th>address</th> 
     </tr> 
     <?php 
    while ($row = mysqli_fetch_object($result)) 
    { 
?> 
     <tr> 
     <td><?php echo $row->id ?></td> 
     <td><?php echo $row->user_name ?></td> 
     <td><?php echo $row->qualification ?></td> 
     <td><?php echo $row->address ?></td> 
     </tr> 
<?php 
} 
?> 
</table> 
<?php 
$query = "SELECT * FROM record"; 
    $result = $link -> query($query); 
    $rows = mysqli_num_rows($result); 
    $rr = $rows/$limit; 
    $rr = ceil($rr); 
    for ($i=1; $i<=$rr ; $i++) { 
?> 
     <a href="recordfetch.php?id=<?php echo $i; ?>"><?php echo @$i;?>&nbsp;</a> 
<?php  
} 
mysqli_close($link) 
?> 

運行上面的代碼並檢查。如果我的話不清楚給你。

+1

我們應該如何運行你的代碼而不缺少文件和數據庫結構等等。 –

回答

0

我認爲$ _POST數據丟失。你點擊鏈接,這樣新的頁面就會打開,不需要POST信息。

如果切換到GET而不是POST,則可以更改此設置。您可以將GET參數添加到您的<a href="">標籤。

例如 <a href="pagination.php?page=5&dlimit=100

而且儘量避免@錯誤抑制和不通過$ _ POST/$ _ GET直接瓦爾到您的SQL字符串。壞人可以使用它進行SQL注入

+0

我嘗試過,但隨着我**取代**後** **取得**無限循環開始。 文件中有兩個鏈接,一個是數據在數據庫中輸入的位置,另一個是存儲數據庫連接數據的連接。 recordfetch.php是文件本身。 我使用的演示SQL結構是** user_name **,**資質**和**地址** 希望此信息有助於解決此問題 – Shashank

+0

我不明白你想要什麼。自動取款機。我認爲你只是想要一個用戶定義的LIMIT。因此,我會將GET添加到鏈接 – mirko911

+0

好吧我缺少一個得到。但是同樣的事情,無論我在哪個頁面上,當我進入限制系統時都會接受並處理,之後當我再次更改頁面時,它會開始顯示默認值,即:5 – Shashank

0

所以我得到了我的問題的答案。如果有人在以後需要它,我會在這裏發佈它。

<a href="recordentry.php">Submit New record</a><br><br> 
<form method="get"> 
    <input type="text" name="dlimit"> 
    <input type="submit" name="submit"> 
</form> 
<?php 
$database = 'test'; 
require 'connection.php'; 
if(empty($_GET['dlimit']) && !isset($_GET['submit']) && empty($_GET['n'])) 
{ 
    $limit = 5; 
    global $limit; 
} 
else 
{ 
    if (isset($_GET['dlimit'])) 
    { 
     $limit = $_GET['dlimit']; 
    } 
    else 
    { 
     @$limit = $_GET['n']; 
    } 
    global $limit; 
} 
if(!isset($_GET['submit'])&& empty($_GET['n'])) 
{ 
    $n=5; 
    global $n; 

} 
else 
{ 
    if(empty($_GET['dlimit'])) 
    { 
     $n=$_GET['n']; 
    } 
    else 
    { 
     $n=$_GET['dlimit']; 
    } 
    global $n; 

} 

@$id = $_GET['id']; 

if($id==""||$id==null) 
{ 
    $page=0; 
} 
else 
{ 
$page = ($id*$limit)-$limit; 
} 
    $qq ="select * from record limit $page,$limit"; 
    $result = $link -> query($qq); 
?> 
<table border="1"><th>ID</th> 
     <th>Name</th> 
     <th>qualification</th> 
     <th>address</th> 
     </tr> 
     <?php 
    while ($row = mysqli_fetch_object($result)) 
    { 
?> 
     <tr> 
     <td><?php echo $row->id ?></td> 
     <td><?php echo $row->user_name ?></td> 
     <td><?php echo $row->qualification ?></td> 
     <td><?php echo $row->address ?></td> 
     </tr> 
<?php 
} 
?> 
</table> 
<?php 
if (!isset($_GET['submit']) && empty($_GET['n'])) { 
    $n = 5; 
    global $n; 
} 
else 
{ 
    if (empty($_GET['dlimit'])) { 
     $n = $_GET['n']; 
    } 
    else 
    { 
     $n = $_GET['dlimit']; 
    } 
    global $n; 
} 
$query = "SELECT * FROM record"; 
    $result = $link -> query($query); 
    $rows = mysqli_num_rows($result); 
    $rr = $rows/$limit; 
    $rr = ceil($rr); 
    for ($i=1; $i<=$rr ; $i++) { 
?> 
     <a href="recordfetch.php?id=<?php echo $i; ?>&& n=<?php echo @$n; ?>"><?php echo @$i;?>&nbsp;</a> 
<?php  
} 
mysqli_close($link) 
?> 

我再次在這裏提的是,這是我在這裏包含的文件只是連接,我充滿了我的連接細節等就是數據由用戶輸入我的記錄項文件。