一覧画面と検索画面を一緒にしています
一覧画面は10件表示にし、テキストになにも入力されてなかったらデータを全件表示したいです
また、1 l 2 l 3 のようにページを表示し、また何件中何件目データですと表示したいです
<!--一覧画面 index.php-->
<html>
<head>
<title>一覧画面</title>
</head>
<body>
<br><br>
<blockquote>
一覧画面
<br><br>
<?php
if ($_GET) { // データがGETされていたら
$event = isset($_GET['event']) ? $_GET['event'] : ''; // 取得
if (isset ($_GET['page'])==false) {
$page=0;
} else {
//そうでなければpageパラメータの値をpage変数にセット
$page = $_GET['page'];
}
}
?>
<?php
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin");
$name=isset($_GET['name'])?$_GET['name']:"";
$sql ="select * from tbl_test where ";
$sql.="`氏名` like concat('%',?,'%') ";
$sql.="or `住所` like concat('%',?,'%') ";
$sql.= " limit " . $page*10 . ", 10" ;
$stmt = $pdo->prepare( $sql);
$stmt->execute(array($name,$name));
$count = $stmt->rowCount();
if($count>0){
print "<table border=1>" ;
print "<tr>";
print "<th>番号</th>";
print "<th>氏名</th>";
print "<th>住所</th>";
print "<th>操作</th>";
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
print "</tr>";
$ID = htmlspecialchars($row['番号']);
$NAME = htmlspecialchars($row['氏名']);
$ADDR = htmlspecialchars($row['住所']);
echo "<tr>
<td>$ID</td>
<td>$NAME</td>
<td>$ADDR</td>
<td><a href='edit.php?番号=$ID'>修正</a>
<a href='delete.php?番号=$ID'>削除</a></td></tr>";
};
print "</table>" ;
}else{
print "該当するデータがありません";
}
?>
<br><br><br>
<form action = "index.php" method="GET">
<input type="hidden" name="event" value="find">
<input type="text" name="name"style ="font-size:20px;width: 400px; height: 40px">
<input type="submit" value="検索" style ="font-size:20px;width: 100px; height: 40px">
</form>
<br><br>
<form action = "regist.php" method="GET">
<input type="hidden" name="event" value="regist">
<input type = "submit" value = "新規登録" style ="font-size:20px;width: 100px; height: 40px">
</form>
<input type="hidden" name="page" value="0">
</blockquote>
</body>
</html>
検索のテキストボックスが空だったら全件表示したいのですが今10件しか出ません
limitの書く場所が原因でしょうか?
またこのように一覧画面と検索結果画面が一緒じゃまずいですかね?
検索結果を別ウインドウじゃなく自分に返したいと思いこのやり方にしたのですがよくないですか?
No.2
- 回答日時:
よくよく考えたら$nameが空ならwhere句もいらないね
$name=isset($_GET['name'])?$_GET['name']:"";
$perpage=10;
$page=isset($_GET['page'])?($_GET['page']*$perpage):0;
$sql ="select * from tbl_test where 1 ";
if($name!==""){
$sql.="and (0 ";
$sql.="or `氏名` like concat('%',?,'%') ";
$sql.="or `住所` like concat('%',?,'%') ";
$sql.=") ";
$sql.= " limit {$page},{$perpage}" ;
}
のような感じ
ただしこのように?の位置関係が確定できな場合
prepareの関係で$nameを?に代入するのはbindValueにした方がよいかも
現レベルの絞り込みならexcuteに配列をセットするやり方でも
無視されるので問題はありませんが
いつもありがとうございます
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin");
$name=isset($_GET['name'])?$_GET['name']:"";
$perpage=10;
$page=isset($_GET['page'])?($_GET['page']*$perpage):0;
$sql ="select * from tbl_test where 1 ";
if($name!==""){
$sql.="and (0 ";
$sql.="or `氏名` like concat('%',?,'%') ";
$sql.="or `住所` like concat('%',?,'%') ";
$sql.=") ";
$sql.= " limit {$page},{$perpage}" ;
}
$sql.= "select count(*) from tbl_test " ;
$stmt = $pdo->prepare( $sql);
$stmt->execute(array($name,$name));
$count = $stmt->rowCount();
if($count>0){
print "<table border=1>" ;
print "<tr>";
print "<th>番号</th>";
print "<th>氏名</th>";
print "<th>住所</th>";
print "<th>操作</th>";
print "</tr>";
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$ID = htmlspecialchars($row['番号']);
$NAME = htmlspecialchars($row['氏名']);
$ADDR = htmlspecialchars($row['住所']);
echo "<tr>
<td>$ID</td>
<td>$NAME</td>
<td>$ADDR</td>
<td><a href='edit.php?番号=$ID'>修正</a>
<a href='delete.php?番号=$ID'>削除</a></td></tr>";
print "</tr>";
};
print "</table>" ;
}else{
print "該当するデータがありません";
}
これで合ってますか?
該当者なしとしか出ないですね
すいません
No.1
- 回答日時:
>検索のテキストボックスが空だったら全件表示したい
の部分だけ
$name=isset($_GET['name'])?$_GET['name']:"";
としている前提で
if($name!==""){
$sql.= " limit " . $page*10 . ", 10" ;
}
という場合分けがあればいいのでは?
検索文字があればlimit発動、なければ全件表示
ありがとうございます
<?php
if ($_GET) { // データがGETされていたら
$event = isset($_GET['event']) ? $_GET['event'] : ''; // 取得
if (isset ($_GET['page'])==false) {
$page=0;
} else {
//そうでなければpageパラメータの値をpage変数にセット
$page = $_GET['page'];
}
}
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "admin");
$name=isset($_GET['name'])?$_GET['name']:"";
if($name!==""){
$sql ="select * from tbl_test where ";
$sql.="`氏名` like concat('%',?,'%') ";
$sql.="or `住所` like concat('%',?,'%') ";
$sql.= " limit " . $page*10 . ", 10" ;
$stmt = $pdo->prepare( $sql);
$stmt->execute(array($name,$name));
$count = $stmt->rowCount();
}
if($count>0){
print "<table border=1>" ;
print "<tr>";
print "<th>番号</th>";
print "<th>氏名</th>";
print "<th>住所</th>";
print "<th>操作</th>";
print "</tr>";
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$ID = htmlspecialchars($row['番号']);
$NAME = htmlspecialchars($row['氏名']);
$ADDR = htmlspecialchars($row['住所']);
echo "<tr>
<td>$ID</td>
<td>$NAME</td>
<td>$ADDR</td>
<td><a href='edit.php?番号=$ID'>修正</a>
<a href='delete.php?番号=$ID'>削除</a></td></tr>";
print "</tr>";
};
print "</table>" ;
}else{
print "該当するデータがありません";
}
?>
こういうことですが?
実行しても
Notice: Undefined variable: count in
警告が出て
該当するデータがありませんと出ます
また検索すればデータが出るのですが空白だとダメですね
PDOって難しいですね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysql データ更新
-
検索結果にリンクを生成
-
接続ができません
-
phpとmysqlを使っています。
-
LIMIT で条件を満たしているの...
-
バージョン3.23.53からアップグ...
-
phpMyAdminについて
-
PHP+MySQL 接続できません
-
Float型の時の計算結果がおかしい
-
ADOのバージョンを確認する方法
-
MYSQL
-
PHP+ApacheでMySQLに接続できな...
-
SQLのVARCHARとVARCHAR2の違い
-
MYSQLで日本語が入力できない
-
”MySQL”以前は実行できたのです...
-
ページング実装で2ページ目以...
-
phpMyAdimnとコマンドラインで...
-
MySQLとEclipseの接続方法について
-
ODP.NETのバージョン確認
-
MySQLでエラーがでて前に進めま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォームから送信した値とMySQL...
-
PHPにてSQLから取得したデータ...
-
mysql sqlエラー
-
mysqlで作ったテーブルをphpで...
-
pdfファイルの管理システム
-
MySQLからのデータをページに1...
-
PHPでMySQLを使った検索のプロ...
-
mysql データ更新
-
プレースホルダを使った複数カ...
-
検索機能
-
MySQLでの順位付けについて
-
データを一括で処理する方法に...
-
PHPでMySQLを使った検索のプロ...
-
PDOでDB ページング
-
配列の要素でmysqlに問い合わせ
-
mysql+php リストボックスにつ...
-
MySQLでデータ表示
-
mysqlの置換について2
-
PHP+MYSQLで検索画面を作成し...
-
PHP&MYSQLでの検索システムにつ...
おすすめ情報