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

有限会社ジュウイチ zuichi_info @ omocha.co.jp
2009年 5月 15日 (金) 22:08:43 JST




投稿した マツムラです。

いしかわ様

ご教授ありがとうございます。
色々とテストと確認してみます。ありがとう御座います。

ちょっと色々と確認してみます。

今後ともよろしくお願いします。





On Fri, 15 May 2009 01:59:08 +0900
Masatoshi Ishikawa <masato-i @ yj8.so-net.ne.jp> wrote:

> いしかわ です.
> 
> こんばんは
> 
> 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 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

-- 
有限会社ジュウイチ <zuichi_info @ omocha.co.jp>



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