まだ初めて二週間のプログラム初心者です。
xamppを使用してPHPとMySQLの勉強をしています。
ネットを見ながら見よう見まねでやっています。
とりあえず練習として、htmlとPHPでユーザーインターフェース
のようなものをつくってみました。
画面上部の各入力フォームにデータを入力すると
DBにデータが登録されるようになっています。
修正と削除ができるように、画面下部の表の左端に設置した
ラジオボタンを選択すると、入力フォームに、DBに登録したデータが
表示されるようにしたいと思っています。
入力フォームの<input>タグのvalueにDBから配列でデータをとって変数に
入れてみたりしたのですが、上手くいきません。
何か良い方法はないでしょうか。ご教授お願い致します。
また、最終的には出力ボタンを押すと、エクセルの指定のフォーマットに
データが流れ、精算表みたいなものを紙で出力できるようにしたいのですが、そういうことは可能なのでしょうか。
よろしくお願い致します。
lang
1<!DOCUTYPE html> 2<html lang="ja"> 3 4<head> 5<meta charset="UTF-8"> 6<style type="text/css"> 7<!-- 8body {line-height : 180% ; } 9--> 10</style> 11<title>交通費精算</title> 12</head> 13 14<body> 15<h1>交通費精算システム</h1> 16 17<form method="post" action="add.php" autocomplete="on"> 18 19 20起票者<select name="name" style="font-size: 16px;" > 21 22 <option value="">佐藤</option> 23 <option value="">鈴木</option> 24 25 </select> 26 27<!-- コメント 間を開ける --> 28<span style="margin-right: 5em;"></span> 29 30<input type = "submit" value = "選択データを精算ずみにする"> 31<br> 32 33起票日 34<input type = "date" name = "kihyobi" 35value = "<?php echo date("Y/m/d");?>"> 36<br> 37 38利用日 39<select type = "day" name = "riyobi" value = "<?php 40echo "<select name=\"riyobi\">"; 41 42for ($i = 0; $i >-30 ; $i--) { 43 echo "<option>".date("Y/m/d",strtotime("+$i day")); 44} 45echo "</select>"; 46 47?> 48 49~ 50<!--検索用フォーム利用日2 --> 51<select type = "date" value = "<?php 52echo "<select name=\"riyobi2\">"; 53 54for ($i = 0; $i >-60 ; $i--) { 55 echo "<option>".date("Y/m/d",strtotime("+$i day")); 56} 57echo "</select>"; 58 59?> 60 61<!-- コメント 間を開ける --> 62<span style="margin-right: 3em;"></span> 63 64<input type = "submit" value = "データ検索"> 65 66<input type = "submit" 67" onclick="window.open('http://www.jorudan.co.jp/')" value = "路線検索" > 68<br> 69 70路線名 71<select name="rosen" style="font-size: 16px;" required> 72 73 <option value="地下鉄">地下鉄</option> 74 <option value="JR">JR</option> 75 <option value="阪急">阪急</option> 76 <option value="阪神">阪神</option> 77 <option value="南海">南海</option> 78 <option value="近鉄">近鉄</option> 79 <option value="京阪">京阪</option> 80 <option value="阪堺">阪堺</option> 81 <option value="泉北高速">泉北高速</option> 82 <option value="ニュートラム">ニュートラム</option> 83 <option value="大阪モノレール">大阪モノレール</option> 84 85 86 87 </select> 88 89<!-- コメント 間を開ける --> 90<span style="margin-right: 2em;"></span> 91 92区間 93<input type = "text" name = "kukan1" value = "" required > 94 95~ 96 97<input type = "text" name = "kukan2" value = "" required > 98<br> 99 100 101<input type="radio" name="teki" value=""checked>往復 102<input type="radio" name="teki" value="" >片道 103 104<!-- コメント 間を開ける --> 105<span style="margin-right: 2em;"></span> 106 107小計 108<input type = "number" name = "syokei" value = ""required > 109 110<!-- コメント 間を開ける --> 111<span style="margin-right: 2em;"></span> 112 113未精算額 合計 114<input type = "number" name = "gokei" value = ""> 115<br> 116 117 118訪問先 119<input type = "text" name = "homon" value = "" required> 120 121<!-- コメント 間を開ける --> 122<span style="margin-right: 2em;"></span> 123 124<input type = "submit" value = "保存"> 125 126<!-- コメント 間を開ける --> 127<span style="margin-right: 2em;"></span> 128 129<input type = "submit" value = "削除"> 130 131<input type = "submit" value = "出力"> 132 133<!-- コメント 間を開ける --> 134<p style="margin-top:1em;"> 135 136</form> 137 138 139<?php 140 141//データベースの接続とSQLの操作 142 143$user = "root"; 144$pass = "1234"; 145 146try { 147$dbh = new PDO('mysql:host=localhost;dbname=AAA;charset=utf8', $user,$pass); 148$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 149 150$sql = "select * from kotuhi"; 151$stmt = $dbh->query($sql); 152$result = $stmt->fetchALL(PDO::FETCH_ASSOC); 153 154///////画面下部テーブル//////////////////////////////////// 155echo "<TABLE border='1' bordercolor = 'orange'>"; 156echo "<TR>"; 157 158echo "<TD>選択"; 159echo "</TD>"; 160echo "<TD>精算"; 161echo "</TD>"; 162echo "<TD>出力"; 163echo "</TD>"; 164echo "<TD>起票者"; 165echo "</TD>"; 166echo "<TD>利用日"; 167echo "</TD>"; 168echo "<TD>路線"; 169echo "</TD>"; 170echo "<TD>区間"; 171echo "</TD>"; 172echo "<TD>適用"; 173echo "</TD>"; 174echo "<TD>金額"; 175echo "</TD>"; 176echo "<TD>訪問先"; 177echo "</TD>"; 178 179echo "</TR>"; 180 181//1ループで1行データ $resultテーブルデータ $rowDBのレコード 182 183foreach ($result as $row) { 184 185 echo "<TR>" ; 186 187 //選択ラジオボタン//////// 188 echo "<TD>" . "<input type='radio' name='sentaku' 189 value='sentaku'>"; 190 echo "</TD>"; 191 ////////////////////////// 192 193 //列1 精算を出力////////////// 194 echo "<TD>" .htmlspecialchars($row['seisan'],ENT_QUOTES,'UTF-8'); 195 echo "</TD>"; 196 ////////////////////////// 197 198 //列2 出力を出力////////////// 199 echo "<TD>" . htmlspecialchars($row['syutu'],ENT_QUOTES,'UTF-8'); 200 echo "</TD>"; 201 ////////////////////////// 202 203 //列3 起票者を出力////////////// 204 echo "<TD>" . htmlspecialchars($row['name'],ENT_QUOTES,'UTF-8'); 205 echo "</TD>"; 206 ////////////////////////// 207 208 //列4 利用日を出力////////////// 209 echo "<TD>" . htmlspecialchars($row['riyobi'],ENT_QUOTES,'UTF-8'); 210 echo "</TD>"; 211 ////////////////////////// 212 213 //列5 路線を出力////////////// 214 echo "<TD>" . htmlspecialchars($row['rosen'],ENT_QUOTES,'UTF-8'); 215 echo "</TD>"; 216 ////////////////////////// 217 218 //列6 区間を出力////////////// 219 echo "<TD>" . htmlspecialchars($row['kukan'],ENT_QUOTES,'UTF-8'); 220 echo "</TD>"; 221 ////////////////////////// 222 223 //列7 適用を出力////////////// 224 echo "<TD>" . htmlspecialchars($row['teki'],ENT_QUOTES,'UTF-8'); 225 echo "</TD>"; 226 ////////////////////////// 227 228 //列8 金額を出力////////////// 229 echo "<TD>" . htmlspecialchars($row['syokei'],ENT_QUOTES,'UTF-8'); 230 echo "</TD>"; 231 ////////////////////////// 232 233 //列9 訪問先を出力////////////// 234 echo "<TD>" . htmlspecialchars($row['homon'],ENT_QUOTES,'UTF-8'); 235 echo "</TD>"; 236 ////////////////////////// 237 238} 239 echo "</table>\n"; 240$dbh = null; 241 242 243} catch (PDOException $e) { 244 echo "エラー発生: " . htmlspecialchars($e->getMessage(), ENT_QUOTES, 'UTF-8') . "<br>"; 245 die(); 246 } 247 248?> 249 250</body> 251 252</html>
PHP
1<?php 2header("Content-Type: text/html; charset=UTF-8"); 3 4//変数の設定 5$user = "root"; 6$pass = "1234"; 7$name = $_POST['name']; 8$kihyobi = $_POST['kihyobi']; 9$riyobi = $_POST['riyobi']; 10$rosen = $_POST['rosen']; 11$kukan1 = $_POST['kukan1']; 12$kukan2 = $_POST['kukan2']; 13$teki = $_POST['teki']; 14$syokei = $_POST['syokei']; 15$homon = $_POST['homon']; 16 17$kukan = $_POST['kukan1'].' ~ '.$_POST['kukan2']; 18 19 20try { 21 $dbh = new PDO('mysql:host=localhost;dbname=bbb', $user,$pass); 22 $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); 23 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 24 25//PDO プリペアードステイトメント プレースホルダの設定 26$sql = "insert into kotuhi (name,kihyobi,riyobi,rosen,kukan1,kukan2,teki,syokei,homon,kukan) values (?,?,?,?,?,?,?,?,?,?)"; 27$stmt = $dbh->prepare($sql); 28 29//値のバインド 30$stmt->bindValue(1, $name,PDO::PARAM_STR); 31$stmt->bindValue(2, $kihyobi,PDO::PARAM_STR); 32$stmt->bindValue(3, $riyobi,PDO::PARAM_STR); 33$stmt->bindValue(4, $rosen,PDO::PARAM_STR); 34$stmt->bindValue(5, $kukan1,PDO::PARAM_STR); 35$stmt->bindValue(6, $kukan2,PDO::PARAM_STR); 36$stmt->bindValue(7, $teki,PDO::PARAM_STR); 37$stmt->bindValue(8, $syokei,PDO::PARAM_INT); 38$stmt->bindValue(9, $homon,PDO::PARAM_STR); 39 40$stmt->bindValue(10, $kukan,PDO::PARAM_STR); 41 42$stmt->execute(); 43 $dbh = null; 44 echo "登録が完了しました<br><br>"; 45 echo "<a href = 'kotuhi.html'>登録画面へ戻る</a>"; 46 47} catch (PDOException $e) { 48echo "エラー発生: " . htmlspecialchars($e->getMessage(),ENT_QUOTES) . "<br>"; 49die(); 50}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/01/21 03:17