DBに登録している商品を検索かけて、表示させたいです。
商品IDや名前を検索かけると表示はされるのですが、適当な値をいれても、データを取り出せてしまいます。もしかしたら、どこかのコードでとりあえず出力するようになってしまっているのかと・・・原因がつかめないためお力を貸してほしいです。
$hoge1 = $_POST['number']??''; // 商品番号 $hoge2 = $_POST['name']??''; //商品名 $hoge3 = $_POST['date']??''; // 入荷日 if(empty($hoge1) && empty($hoge2) && empty($hoge3)){ // 初期状態を空白 $sql = $pdo->query('SELECT * FROM items where id=0'); // 条件が一つでも入力されていれば検索をかけれるようにする }elseif($sql=$pdo->query('SELECT * FROM items WHERE 1=1'));{ if($hoge1 ){'AND number=:number'; } if($hoge2 ){'AND name=:name'; } if($hoge3 ){'AND date=:date'; } } $rows = $sql->fetchAll();
初期表示を空にするため
if(empty($hoge1) && empty($hoge2) && empty($hoge3)){ // 初期状態を空白 $sql = $pdo->query('SELECT * FROM items where id=0');
検索条件は、一つでも当てはまっていれば表示する
// 条件が一つでも入力されていれば検索をかけれるようにする }elseif($sql=$pdo->query('SELECT * FROM items WHERE 1=1'));{ if($hoge1 ){'AND number=:number'; } if($hoge2 ){'AND name=:name'; } if($hoge3 ){'AND date=:date'; } }
テーブルのコード
<tbody> <?php foreach ($rows as $key => $row): ?> <tr data-index="0"> <th scope="row"> <!-- 1-2: #ラジオボタン --> <input class="form-check-input ml-1" type="radio" name="flexRadioDefault" id="flexRadioDefault1"> <label class="form-check-label" for="flexRadioDefault1"></label> </th> <td><?= $row['number']?></td> <td><?= $row['name']?></td> <td><?= $row['date']?></td> </tr> <?php endforeach; ?> </tbody>
<form method = "post" action = "hogehoge.php" name="test"> <div class="form-group"> <div class="row"> <div class="col-4"> <label for="number" class="control-label">商品番号:</label> <input type="number" class="form-control" id="number" name="number" value=""> </div> <div class="col-4"> <label for = "name" class = "control-label">商品名:</label> <input type = "text" class = "form-control" id = "name" name = "name" value=""> </div> <div class="col-4"> <label for = "date" class = "control-label">入荷日:</label> <!-- input="date"でカレンダー表示 --> <input type="date" class="form-control" id="date" name="date" placeholder="年/月/日" value=""> </div> </div> <!-- 2-1:クリア処理 ボタン:「クリア」・「検索」--> <div class="form-group text-right mt-3"> <button class="btn btn-warning btn-sm" type="reset" name="reset" value="clear">クリア</button> <button class="btn btn-info btn-sm" type="serch">検索</button> </div> </div> </form>
回答3件
あなたの回答
tips
プレビュー