[PHP-users 34573] Re: 検索結果の 次へ(Next)、前へ(Previous)ができず困っています。

Masatoshi Ishikawa masato-i @ yj8.so-net.ne.jp
2009年 5月 15日 (金) 01:59:08 JST


いしかわ です.

こんばんは

limit を使って解決を図るのであれば,PHPより MySQLのMLで
たずねられた方がよいような気もしますが,・・・

それはそれとして.検索結果の任意のところから n件の
検索結果を取得するのであれば,limit 句にオフセット
を指定すればよいと思います.

リファレンスを見たところ書式としては,

SELECT * FROM テーブル WHERE 条件 LIMIT オフセット,件数

でよいと思います.オフセットの計算は,

(ページ番号-1)*[1ページに表示したい結果の件数]

でどうでしょうか? (ページ番号が1から始まると仮定しています)

ページ番号は,次へ や 前へ のボタン(リンク?)を押したときのPHPのプログ
ラムへ値を渡すようにすればよいと思います.

リンクで渡すのであれば・・・

<a href="hoge.php?page=ページ">前へ</a>

のような感じでかけばとりあえず動くと思います.ちなみに上のリンクから値を
取り出す場合は,$card_level とときと同じでよいと思います.

ソースを書いてテストしていないので,少々頼りない背梅異聞で申し訳ないです
がいかがでしょうか?

では.



有限会社ジュウイチ さんは書きました:
> 投稿した、マツムラです。
> 
> ご教授ありがとう御座います。
> とにかく、自分にスキルが無く理解力もないためすみません。
> 
> 書き忘れたのですが、このCODEは、
> 
> $card_level = $_REQUEST['card_level']; // 変数に代入
> 
> この部分でわかると思いますが、$card_level で検索している状態です。
> " LIMIT "をSELECTの検索CODEに、見よう見まねでいろいろやってみましたが
> LIMITの数量のみ表示される状態になり、自分では、検索結果の 次へ(Next)、
> 前へ(Previous)を実現することができませんでした。
> 
> スキルが無く(レベルが低く)申し訳ありません。
> もう少し、初心者向けとしてご教授いただけたら助かります。
> 申し訳ありませんが、よろしくお願いします。
> 
> 
> 
> 
> On Fri, 15 May 2009 00:49:25 +0900
> Masatoshi Ishikawa <masato-i @ yj8.so-net.ne.jp> wrote:
> 
>> いしかわ です.
>>
>> はじめまして.
>>
>> 質問を勘違いしているかもしれませんが・・・
>>
>>
>> 下のコードを見た限り,MySQLに発行するSQL文で limit を使って取得する検索
>> 結果の範囲を指定するか,検索結果を配列に一度全部入れいているようなので,
>> 表示する配列の範囲を指定してやればできると思いますが,どうでしょうか?
>>
>> では.
>>
>>
>> 有限会社ジュウイチ さんは書きました:
>>> マツムラといいます。
>>>
>>> 初めて投稿させていただきました。
>>>
>>> PHPでMySQLの検索結果の 次へ(Next)、前へ(Previous)ができず困っています。
>>> 海外のサイトのサンプルCODEをみて、色々と試したのですが、どうにもうまく
>>> 行きません。また、本も5冊買っていろいろ見たのですが、ダメでした。
>>>
>>> 自分にスキルが無いのが原因とは思いますが、何方かご教授いただけないでし
>>> ょうか?
>>>
>>> よろしくお願いします。
>>>
>>>
>>> OCNのメール&ウェップPro2のホスティングを利用しています。
>>>
>>>
>>>
>>> ※HOSTINGの各バージョン(RedHat Linux)
>>> " Apache2.0.52 "," MySQL 5.0.51a "," PHP5.2.8 "です。
>>>
>>> ※下記が、現在検索をしているページのCODEです。このページにて、
>>>   検索結果の 次へ(Next)、前へ(Previous)を実現したいと思っております。
>>>
>>>
>>> <?php
>>>
>>> // --------------  MySQL データ操作 --------------------------------
>>>
>>> $card_level = $_REQUEST['card_level']; // 変数に代入
>>>
>>>   $DBSERVER   = "localhost";    //MySQLサーバー名-----
>>>   $DBUSER     = "root";         //ログインユーザー名
>>>   $DBPASSWORD = "";             //パスワード----------
>>>   $DBNAME      = "dive_free_db_";    //データベース名
>>>
>>> //MySQLに接続します
>>>   $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD);
>>>
>>> //MySQL読み込み時の文字コードを設定---------------------------------------
>>>   mysql_query("set names sjis");
>>>
>>> //データベースを選択します
>>>   $selectdb = mysql_select_db($DBNAME);
>>>
>>> // dive_free_tbl_テーブルに検索を実行する。
>>>
>>>   $sql = "SELECT * from dive_free_tbl_  where card_level = '$card_level'";
>>>
>>> //SQLを発行して結果セットを取得します-----------------------変更--------------
>>>   $result = mysql_query($sql) or die(mysql_error());
>>>
>>> //検索結果のレコード数を $rowa に格納します  
>>>   $rows = mysql_num_rows($result);
>>>   
>>> //--------------------------------------------------------------------------
>>> // foreach用のループ変数" $radars " を設定---------------START------
>>>   
>>>   for ($i = 0, $n = mysql_num_rows($result); $i < $n; $i++)
>>>   {
>>> 	$radars[] = mysql_fetch_assoc($result);
>>>   }
>>>   
>>> // foreach用のループ" $radars " を設定---------END------------------
>>>   
>>>
>>> ?>
>>>
>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
>>> <html xmlns="http://www.w3.org/1999/xhtml">
>>> <head>
>>> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
>>> </head>
>>>
>>> <body>
>>> <?php foreach($radars as $radar):// 検索結果の一覧表示の始まり------------- ?>
>>> <br />
>>> <table width="580" border="0" cellpadding="2" cellspacing="0" bordercolor="#CCCCCC" bgcolor="#f9f3ff">
>>>   <tr height="25">
>>>     <td width="580" height="25" align="center" valign="top" bgcolor="#E6E6E6"><table width="580" border="0" cellpadding="2">
>>>       <tr>
>>>         <td width="17%" height="20" align="center" bgcolor="#E6E6E6" class="style2">登録日</td>
>>>         <td width="18%" align="center" bgcolor="#E6E6E6" class="style2">Card Level</td>
>>>         <td width="16%" align="center" bgcolor="#E6E6E6" class="style2">タンク本数</td>
>>>         <td width="16%" align="center" bgcolor="#E6E6E6" class="style2">主な潜水地</td>
>>>         <td width="15%" align="center" bgcolor="#E6E6E6" class="style2">年齢</td>
>>>         <td width="15%" align="center" bgcolor="#E6E6E6" class="style2">性別</td>
>>>       </tr>
>>>       <tr>
>>>       <td><font color="#000082"><?php echo $radar['time_stamp']?></font></td>
>>>       <td><font color="#000082"><?php echo $radar['card_level']?></font></td>
>>>       <td><font color="#000082"><?php echo $radar['tank_number']?></font></td>
>>>       <td><font color="#000082"><?php echo $radar['diving_point']?></font></td>
>>>       <td><font color="#000082"><?php echo $radar['diver_age']?></font></td>
>>>       <td><font color="#000082"><?php echo $radar['diver_sex']?></font></td>
>>>       </tr>
>>>     </table></td>
>>>   </tr>
>>>   <tr>
>>>     <td align="right" valign="middle">
>>> </td>
>>>   </tr>
>>> </table>
>>> <?php endforeach; // 検索結果の一覧表示の終わり--------------------------- ?>
>>> </body>
>>> </html>
>>>
>>>
>>>
>>>
>>> 以上
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> PHP-users mailing list  PHP-users @ php.gr.jp
>>> http://ml.php.gr.jp/mailman/listinfo/php-users
>>> PHP初心者のためのページ - 質問する前にはこちらをお読みください
>>> http://oldwww.php.gr.jp/php/novice.php3
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - www.grisoft.jp 
>>> Version: 8.5.325 / Virus Database: 270.12.29/2114 - Release Date: 05/14/09 06:28:00
>>>
>> _______________________________________________
>> PHP-users mailing list  PHP-users @ php.gr.jp
>> http://ml.php.gr.jp/mailman/listinfo/php-users
>> PHP初心者のためのページ - 質問する前にはこちらをお読みください
>> http://oldwww.php.gr.jp/php/novice.php3
> 
> 
> ------------------------------------------------------------------------
> 
> 
> No virus found in this incoming message.
> Checked by AVG - www.grisoft.jp 
> Version: 8.5.325 / Virus Database: 270.12.29/2114 - Release Date: 05/14/09 06:28:00
> 



PHP-users メーリングリストの案内