ページング表示は、WEB プログラミングで最も頻繁に処理されるリンクの 1 つです。いわゆるページング表示とは、プログラムを通じて結果セットを少しずつ表示することです。ページング表示を実現するには、各ページに表示されるレコードの数と現在のページが何ページであるかという 2 つの初期パラメータが必要です。完全な結果セットと組み合わせることで、データのページ分割表示を実現できます。前のページ、次のページなどの他の機能については、すべて上記の情報に基づいて処理できます。
テーブル内の最初の 10 レコードを取得するには、次の SQL ステートメントを使用できます:
SELECT * FROM a_table LIMIT 0,10
11 番目から 20 番目のレコードを検索するために使用される SQL ステートメントは次のとおりです:
SELECT * FROM a_table LIMIT 10,10
21 番目から 30 番目のレコードを検索するために使用される SQL ステートメントは次のとおりです:
SELECT * FROM a_table LIMIT 20,10
上記のSQL文から、毎回10件のレコードを取得するということは、各ページに10件のデータを表示することと等価であり、毎回取得するレコードの開始位置と、現在の期間のページ数: 開始位置 = (現在のページ番号 - 1) * 各ページに表示されるレコードの数。変数 $page_size が各ページに表示されるレコードの数を表し、変数 $cur_page が現在のページ番号を表す場合、上記の内容は、以下に示す SQL ステートメント テンプレートを使用して要約できます。
select * from table limit ($cur_page-1)*$page_size,$page_size;
このようにして、ページング下のデータを取得するためのSQL文が得られます。このうち、$page_size は実際の開発に応じて固定値として設定でき、実際の開発では現在のページ $cur_page をパラメータで渡すことができます。また、データが表示される総ページ数は、総レコード数と各ページに表示されるレコード数から計算できます。たとえば、レコードの総数を各ページに表示されるレコードの数で割っても余りがない場合、ページの総数は 2 つの商になります。
<?php $host='localhost'; $user_name='root'; $password='helloworld'; $conn=mysql_connect($host,$user_name,$password); if(!$conn) { die('FAIL!'.mysql_error()); } mysql_select_db('test'); if(isset($_GET['page'])) { $page=$_GET['page']; } else { $page=1; } $page_size=2; $sql='select * from users'; $result=mysql_query($sql); $total=mysql_num_rows($result); if($total) { if($total<$page_size) $page_count=1; if($total%$page_size) { $page_count=(int)($total/$page_size)+1; } else { $page_count=$total/$page_size; } } else { $page_count=0; } $turn_page=''; if($page==1) { $turn_page.='Index Before '; } else { $turn_page.='Index Before '; } if($page==$page_count $page_count==0) { $turn_page.='Next Last'; } else { $turn_page.=' Next Last '; } $sql='select id,name,sex,age from users limit '.($page-1)*$page_size.','.$page_size; $result=mysql_query($sql) OR die ("<br/>ERROR:<b>".mysql_error()."</b><br/>SQL:".$sql); ?> <html> <head> <title>13-8.php</title> </head> <body> <table width="75%" border="0" cellpadding="0" cellspacing="1" bgcolor="#7b7b84"> <tr bgcolor="#8bbcc7"> <td height="33"><p align="center"><strong>ID</strong></p></td> <td><p align="center"><strong>Name</strong></p></td> <td><p align="center"><strong>Sex</strong></p></td> <td><p align="center"><strong>Age</strong></p></td> </tr> <?php if($num=mysql_num_rows($result)) { while($row=mysql_fetch_array($result,MYSQL_ASSOC)) { ?> <tr bgcolor="#FFFFFF"> <td height="22" align="right"><?php echo $row['id']; ?> </td> <td height="22"> <?php echo $row['name']; ?> </td> <td height="22"> <?php echo $row['sex']; ?> </td> <td height="22"> <?php echo $row['age']; ?> </td> </tr> <?php } } echo $turn_page; mysql_close($conn); ?> </body> </html>
POST GET は、フォームを送信する 2 つの方法です。GET で値を渡すには、$_GET を使用して値を取得します。POST でフォームを送信するには、$_POST
を使用します。
post と get の違いは、一方はアドレスバーにパラメータを表示し、もう一方はパラメータを表示しないことです
例えば、ログイン時に get メソッドを使用すると、アドレスバーに値が表示されるため、セキュリティはまったくありません
また、検索したりページ番号を取得したりする場合は、post を使用してアドレス バーのパラメーターを非表示にしますが、これでは意味がありません
$_GET を使用してブラウザのアドレス バーのパラメータの値 (疑問符の後の文字列) (www.baidu.com/s?wd=123 など) を取得すると、$_GET を使用してパラメータ (イベント、アクション、またはパラメータとして理解できます。この値は、フォームを渡すときの入力の名前と一致します) は、wd 123 の値です。たとえば、複数のパラメータはアンパサンドで接続されます。 an=0&si=5 は an パラメータの値が 0、si パラメータの値が 5 であると理解されます。
**********************
たとえば、www.iron-feet.cn/?page=2 というアドレスを入力します
$_GET["page"] は、アドレス上のページの値を取得することです。つまり、2
を取得します。