現状:
プルダウンにデータベースの情報を読んでいます。
html
1<select name="complete"> 2 <option></option> 3 <option>完了</option> 4 <option>未完了</option> 5</select>
ここのselectのみデータベースからではないです。
php
1 <?php 2 if ($result['complete_flag'] == "0") { 3 echo "<td>未完了</td>"; 4 }else if ($result['complete_flag'] == "1") { 5 echo "<td>完了</td>"; 6 }else{ 7 echo "<td>[データありません]</td>"; 8 } 9 ?>
しかしここで書いたように、データを選択された際、完了を選択されましたら完了のデータを表示し、未完了を選択された場合は未完了のデータを表示したいです。
やりたいこと:
プルダウンでデータを選択して、検索ボタンを押すと、AとBとCすべての条件に合うデータをテーブルに表示したいです。
一つしか選択されていなかったらその選択された条件に合ったものを出します。
ご回答宜しくお願いたします。
php
1<form action="" method="post"> 2<?php 3$i=0; 4$sql = "SELECT count(*) FROM task"; 5$stmt = $pdo->prepare($sql); $stmt->execute(); 6$row = $stmt->fetchColumn(); 7 8if($row > 0){ 9$sql = "SELECT 10 task.complete_flag, task.id AS id, 11 COALESCE(owners.name, '[データありません]') AS owner_name, 12 COALESCE(staffs.name, '[データありません]') AS staff_name 13 FROM task 14 LEFT JOIN m_user AS owners ON owners.id = task.owner 15 LEFT JOIN m_user AS staffs ON staffs.id = task.staff;"; 16 $stmt = $pdo->prepare($sql); 17 $stmt->execute(); 18 $a_a=array(); 19 $b_b=array(); 20while($result = $stmt->fetch(PDO::FETCH_ASSOC)){ 21array_push($a_a, $result['owner_name']); 22array_push($b_b, $result['staff_name']); 23 24} 25echo "<select name='owner'>"; 26echo "<option></option>"; 27foreach ($a_a as $key) { 28 echo "<option>"; 29 echo $key; 30 31} 32echo "</select>"; 33 34echo "<select name='staff'>"; 35echo "<option></option>"; 36foreach ($b_b as $key) { 37 echo "<option>"; 38 echo $key; 39 echo "</option>"; 40} 41echo "</select>"; 42?> 43<select name="complete"> 44 <option></option> 45 <option>完了</option> 46 <option>未完了</option> 47</select> 48<?php 49}else{ 50 // SELECT結果がない場合の処理 51 echo "データがありません。"; 52} 53?> 54<input type="button" name="btn" value="検索"> 55 56 </form> 57 58 59 60 61 62<div id="items"></div> 63 64<table id="myTable"> 65<thead> 66 <tr> 67 <th data-column-id="id" data-type="numeric">ID</th> 68 <th data-column-id="title">タスク名</th> 69 <th data-column-id="owner" data-order="desc">作成者</th> 70 <th data-column-id="staff" data-type="numeric">メンバー</th> 71 <th data-column-id="complete_flag">完了フラグ</th> 72 </tr> 73</thead> 74<tbody> 75 <?php 76 77$sql = "SELECT count(*) FROM task"; 78$stmt = $pdo->prepare($sql); $stmt->execute(); 79$row = $stmt->fetchColumn(); 80if($row > 0){ 81 // SELECT結果がある場合の処理 82$sql = "SELECT 83 task.title, task.complete_flag, task.id AS id, 84 COALESCE(owners.name, '[データありません]') AS owner_name, 85 COALESCE(staffs.name, '[データありません]') AS staff_name 86 FROM task 87 LEFT JOIN m_user AS owners ON owners.id = task.owner 88 LEFT JOIN m_user AS staffs ON staffs.id = task.staff;"; 89 $stmt = $pdo->prepare($sql); 90 $stmt->execute(); 91 while($result = $stmt->fetch(PDO::FETCH_ASSOC)){ 92 93?> 94 <tr> 95 <td><?php echo htmlspecialchars($result['id'], ENT_QUOTES, "UTF-8");?></td> 96 <td><?php echo htmlspecialchars($result['title'], ENT_QUOTES, "UTF-8");?></td> 97 <td><?php echo htmlspecialchars($result['owner_name'], ENT_QUOTES, "UTF-8");?></td> 98 <td><?php echo htmlspecialchars($result['staff_name'], ENT_QUOTES, "UTF-8");?></td> 99 <?php 100 if ($result['complete_flag'] == "0") { 101 echo "<td>未完了</td>"; 102 }else if ($result['complete_flag'] == "1") { 103 echo "<td>完了</td>"; 104 }else{ 105 echo "<td>[データありません]</td>"; 106 } 107 ?> 108 </tr> 109 110 <?php 111} 112}else{ 113 // SELECT結果がない場合の処理 114 echo "データがありません。"; 115} 116?> 117</tbody> 118</table> 119 120<?php 121 122?>
回答1件
あなたの回答
tips
プレビュー