PHPを使い残業申請をweb上でできるようにするためのシステムを作っています。
申請されたものをリストにしており、ドロップダウンメニューを使い絞り込み検索を行いたいのですがうまくいきません。
以下がコードです。
PHP
1//データベースに接続 2<?php include('dbc.php');?> 3 4<?php 5//申請されたすべてのものを表示 6$list = $pdo->prepare("SELECT * FROM テーブル名"); 7$list->execute(); 8$temp= $list->fetchall(); 9 10//ここから絞り込み検索の処理を記入しているところです、、、 11$where_sql=""; 12 13if(isset($_GET['search'])){ 14 if($name!=""){ 15 $where_sql="WHERE テーブル名.name='".$name."'"; 16 } 17 if($kenban!=""){ 18 $where_sql="WHERE テーブル名.kenban='".$kenban."'"; 19 }else{ 20 $where_sql="AND テーブル名.kenban='".$kenban."'"; 21 } 22 if($jissiday!=""){ 23 if ($where_sql=="") { 24 $where_sql = "WHERE テーブル名.jissiday='".$jissiday."'"; 25 }else{ 26 $where_sql .= " AND テーブル名.jissiday='".$jissiday."'"; 27 } 28 } 29} 30 31 32 33?>
HTML
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <link rel="stylesheet" type="text/css" href=css/stylesheet2_test.css> 6 <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> 7 8 <title>時間外申請済リスト</title> 9</head> 10 11<a style="margin-left:100px;text-decoration:none;font-size:1.2rem" href='/try_gyoumu/index.php'>業務支援メニューへ</a> 12 13<body> 14 <h1 class="title">~時間外勤務申請済リスト~</h1> 15 16 //ドロップダウンメニューを実装 17 <div class="selectContainer"> 18 <div class="selectBox"> 19 <form action="jikangai_list_test.php" method="get"> 20 21 <select name="name"> 22 <option>名前</option> 23 <?php foreach ($namelist as $output) {?> 24 <option><?php echo $output['name']; ?></option> 25 <?php }?> 26 </select> 27 28 <select name="kenban"> 29 <option>件番</option> 30 <?php foreach ($gyoumulist as $moutput) {?> 31 <option value='<?php echo $moutput[kenban]?>'><?php echo $moutput[kenban].' '.$moutput['kenmei']; ?></option> 32 <?php }?> 33 </select> 34 <br> 35 36 <input type="date">から <input type="date">まで 37 <input class="sarch-button" type="submit" name="search" value="検索"> 38 //ここまで 39 40 <ul class="sort"> 41 <li><a class="ichiran" href="jikangai_list.php">全て表示</a></li> 42 <li><a class="ichiran" href="misoumuin.php">未総務印一覧</a></li> 43 <li><a class="ichiran" href="jissibi_mikinyu.php">実施日未記入一覧</a></li> 44 <li><a class="ichiran" href="list_newer.php">新しい順</a></li> 45 <li><a class="ichiran" href="list_older.php">古い順</a></li> 46 </ul> 47 </form> 48 </div> 49 </div> 50 51 52 <br> 53 <table> 54 <tr> 55 <th>名前</th> 56 <th>予定日</th> 57 <th>予定開始時刻</th> 58 <th>予定終了時刻</th> 59 <th>承認</th> 60 <th>実施日</th> 61 <th>実施開始時刻</th> 62 <th>実施終了時刻</th> 63 <th>時間外稼働時間</th> 64 <th>件番</th> 65 <th>内容</th> 66 <th>総務印</th> 67 <th>編集</th> 68 <th>削除</th> 69 </tr> 70 71 <?php 72 foreach($temp as $data){ 73 ?> 74 <tr> 75 <?php printf("<td>%s</td>",$data['name']); ?> 76 <?php printf("<td>%s</td>",$data['yoteiday']); ?> 77 <?php printf("<td>%s</td>",$data['yoteistarttime']); ?> 78 <?php printf("<td>%s</td>",$data['yoteiendtime']); ?> 79 <?php printf("<td>%s</td>",$data['syounin']); ?> 80 <?php printf("<td>%s</td>",$data['jissiday']); ?> 81 <?php printf("<td>%s</td>",$data['jissistarttime']); ?> 82 <?php printf("<td>%s</td>",$data['jissiendtime']); ?> 83 <?php 84 $from = $data['jissiendtime']; 85 $to = $data['jissistarttime']; 86 $result = date_diff(new DateTime($from), new DateTime($to))->format('%H:%I:%S'); 87 printf("<td>%s</td>",$result); 88 ?> 89 <?php printf("<td>%s</td>",$data['kenban']); ?> 90 <?php printf("<td>%s</td>",$data['naiyou']); ?> 91 <?php printf("<td>%s</td>",$data['soumuin']); ?> 92 <td><a class="fa fa-edit" href="update_form_test.php?id=<?php echo $data['id']?>"></a></td> 93 <td><a class="fa fa-trash delete" href="delete.php?id=<?php echo $data['id'] ?>"></a></td> 94 </tr> 95 <?php 96 } 97 ?> 98 </table> 99 100</body> 101</html> 102 103<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script> 104<script> 105$('.delete').click(function(){ 106if(!confirm('本当に削除しますか?')){ 107 return false; 108} 109}); 110</script>
やりたいこと
0. 検索ボタンを押すと、選択した条件に当てはまるものをリストに表示したい
0. 何も検索していないときはすべて表示
0. 期間(jissiday)は範囲指定
ググりながらやってはいるものの歯が立たない状態です、、、
現在エラーは起きていませんが、検索を押しても何も返ってこない状態です。
わかる方がいらっしゃればご教示ください。
追記
選択されればそれを表示、されていなければ全部を表示するようにしました。
php
1$where_sql=""; 2 3if(isset($_GET['search'])){ 4 if($name!=""){ 5 $where_sql="WHERE table_jikangai.name='".$name."'"; 6 } 7 if($kenban!=""){ 8 $where_sql="WHERE table_jikangai.kenban='".$kenban."'"; 9 }else{ 10 $where_sql="AND table_jikangai.kenban='".$kenban."'"; 11 } 12 if($jissiday!=""){ 13 if ($where_sql=="") { 14 $where_sql = "WHERE table_jikangai.jissiday='".$jissiday."'"; 15 }else{ 16 $where_sql .= " AND table_jikangai.jissiday='".$jissiday."'"; 17 } 18 } 19}else{ 20 $list = $pdo->prepare("SELECT * FROM table_jikangai"); 21 $list->execute(); 22 $temp= $list->fetchall(); 23};