2016-09-20 10 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情報なしで新しいページが開きます。

POSTの代わりにGETに切り替えると、これを変更できます。 <a href="">タグにGETパラメータを追加できます。例 また<a href="pagination.php?page=5&dlimit=100

@エラー抑制を回避しようと通過しないために

$ _POST/$ _あなたのSQL文字列に直接バールをGET。悪い人はSQLインジェクションのためにそれを使うことができます

+0

私はそれを試しましたが、私は** post **を**と置き換えて**無限ループを開始します。 ファイルには、データベースにデータが入力された最初のファイルとデータベース接続データが格納されている接続の2つのリンクがあります。 recordfetch.phpはファイルそのものです。 私が使用したデモ用のSQL構造は** user_name **、** qualification **、** address ** です。この情報がこの問題の解決に役立つことを願っています。 – Shashank

+0

私はあなたが望むものを理解していません。 Atm。私はあなたが定義したLIMITをほしいと思うと思う。したがって、私はリンクにGETを追加します – mirko911

+0

私は1つを取得していない幸せです。しかし、私が限界系に入ると、それと同じことが、同じページであっても、それを取ってから、ページをもう一度変更すると、それを正しく理解するためのデフォルト値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) 
?> 

再び私は、私はここに含まれたファイルは、私は私の接続の詳細を満たし、他のデータは、ユーザによって入力された私のレコードエントリのファイルであるだけで、接続されていることをここで言及しています。