今、友人同士の名簿をデータべスにしてます。
そこで、mySQLをつかってPHPで検索するシステムを作りたく、検索まではできるようになったのですが、ページングの仕方がわかりません。
PEARは使用できないので、どなたか下記にどのようにプログラムを追加すればページング機能がつけられるか教えて下さい。お願い致します。
(下記の検索プログラムは、http://php.dori-mu.net/で紹介されていたものを利用しました。)
---------------------------------------------------------------
<html>
<head>
<title>PHP SEARCH RESULT</title>
<meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">
</head>
<body>
<?
$debug = false;
//DB接続
mysql_connect("127.0.0.1","sample","");
mysql_select_db("sample");
if($debug) print_r($HTTP_POST_VARS);
//エラーチェック
//リクエストメソッドチェック
if($REQUEST_METHOD != "POST") {
print "Error: invalid method";
exit();
}
//クエリ生成
$query = "SELECT * FROM search ";
//検索条件生成
//名前
if(!empty($name)) {
$name = addslashes($name);
$where = "name = '$name' && ";
}
//住所
if(!empty($address)) {
$address = addslashes($address);
$where .= "address REGEXP '$address' && ";
}
//性別
if(!empty($gender)) {
$gender = addslashes($gender);
$where .= "gender = '$gender' && ";
}
//スキル
if(!empty($skill)) {
foreach($skill as $value) {
$value = addslashes($value);
$temp_where .= "skill REGEXP '$value' || ";
}
$temp_where = substr($temp_where, 0, -4);
$where .= "(". $temp_where. ") && ";
}
if(!empty($where)) {
$where = substr($where, 0, -4);
$where = "WHERE " . $where;
}
$query .= $where;
if($debug) {
print "<BR><BR>";
print $query;
}
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if($num_rows == 0) $message = "該当するデータはありませんでした";
else $message = $num_rows . "件ヒットしました";
?>
検索結果<br>
<?=$message?>
<table border=1>
<tr><td>名前</td><td>住所</td><td>性別</td><td>スキル</td></tr>
<? while($row = mysql_fetch_assoc($result)): ?>
<tr><td><?=$row[name]?></td><td><?=$row[address]?></td><td><?=$row[gender]?></td><td><?=$row[skill]?></td></tr>
<? endwhile; ?>
</table>
<a href="input.html">再検索</a>
</body>
</html>
----------------------------------------------------------------
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.2です。
>次のページ指定や次のページを表示することができませんでした。
というのはどうやって次のページに移るのかわからないって意味でしょうか?
でしたらGETで渡してるので,ブラウザのURL欄に
http://www.example.com/test.php?page=2
みたいにファイル名の後に?page=ページってやるとできるはずです。
またはGETが良く分からないなら
$page = $_GET{'page'}; //現在のページを受け取る
の部分を
$page = 2;
とすれば2ページに移るはずなんですけど。だめでしたか?
それとも次のページへのリンクが出せないって意味でしょうか?
それでしたらまずSQLで検索条件に一致するものの件数を取ってきて,最大ページを計算して,for文で回せば出せますよね。
参考URL:http://php.benscom.com/manual/ja/index.php
No.3
- 回答日時:
No.2
- 回答日時:
//ここから
$page = $_GET{'page'}; //現在のページを受け取る
//ページ指定がないときは1ページ目と見なす
if ($page == "") {
$page = 1;
}
$count_per_page = 10; //1ページ当たり10件表示
$query .= "limit $count_per_page offset ".($page-1)*$count_per_page;
//ここまで
というのを
if($debug) {
print "<BR><BR>";
print $query;
}
の前に入れたらできませんか?
チェックしてないのでミスがあったらすみません。
ブラウザからアクセスするときにファイル名の後に?page=2をくっつければ2ページ目が出るはずです。
これができたら,検索条件に一致した件数を取得してページ一覧を出す処理を追加してみたら使いやすくなりそうですね。
早々のご返答ありがとうございます。
limitで表示件数を規制するんですね。
自分のレベルは初心者なので、ご指摘いただいたとおりやってみたところ10件表示にはなるものの、次のページ指定や次のページを表示することができませんでした。
お手数ですがその方法もご教示頂ければありがたいです。
宜しくお願いします。
No.1
- 回答日時:
どこまでスキルのある方か存じませんので
もしかしたら求めているものと違うかも?
普通は
"LIMIT 開始レコード,レコード数"
開始レコードを$_GET["sr"]みたいに
ページごとに取得して開始レコードにぶちこむ感じだと思います。
セッションやクッキーを使わないのであれば
毎回、条件も送らないといけないですね。
そーすは書く元気と気力がないっす。
ご返答ありがとうございます。
お疲れのところありがとうございます。
スキルは初心者で、PHPでつくるにしても、本やネットで元を頂いて、簡単なカスタマイズができる程度です。
なのでお恥ずかしいのですが、部分的にご指摘いただいてもわからない場合が多いです。
お疲れのところ恐縮ですが具体的にご指摘いただければ幸いです。
お願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
php 入力画面から確認表示画面...
-
PHPでCSVを出力するさいに、ル...
-
ワードプレスサイト PHP8.0.25...
-
PHPを使って、別サイトの一部を...
-
PHP ページング データベース
-
Q&Aサイトを作成していてURLの...
-
PHPの構文で間違えが分からない
-
書籍とその書籍が提供している...
-
PHPとHTML+Xamppの掲示板で画像...
-
ファイルの書き込みについて教...
-
Postgresの特定のカラムからス...
-
htmlspecialcharsが機能してい...
-
【初心者】XAMPPのapacheの(恐...
-
プログラミング言語で、使える...
-
こちらはただの直列処理ですか?
-
PHPでこのコード自体に意味は無...
-
phpでPEAR::DBを使っているので...
-
index.phpって何ですか? 具体...
-
index.phpに入るには、どうすれ...
-
awsにApacheとPHPを入れて、何...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAについて
-
PHPで[]の使い方について
-
DBで検索結果に該当するデータ...
-
アラートでyes noを作りたいです。
-
dbに登録したデータをphpのプル...
-
phpでmysqlを使ってデータベー...
-
sortable ギブアップです…助け...
-
PHPでMY SQLの連想配列をリンク...
-
checkboxクリック時、SQLを実行...
-
チェックボックスによる複数の...
-
PHPでMySQLデータを呼び出し、w...
-
mysql_fetch_objectの書き方を...
-
SELECT結果から動的にコンボボ...
-
チェックボックスでチェックし...
-
VBA初心者です。
-
PHPについてなのですが未定義の...
-
文字化けが解決できません。お...
-
htmlとphpの分離
-
php テーブルが作成できない
-
検索結果をgoogleのように数件...
おすすめ情報