PHPでフォーム送信、MySQLからのデータ取得
コーディング初心者です。
PHPで「地名」「年」「月」「日」を入力しフォーム送信すると、
MySQL内のDBに登録しているその入力情報に該当するデータが表示されるというプログラムを作っています。
しかし、すべての結果を表示するのがうまくいきません。
上4つの事項に合致する条件のデータをDBから出し、出力したいです。
例:
登録データは東京都内の過去の気象情報
入力→練馬区、2012年、3月、5日
出力→練馬区、2012年、3月、5日、晴れ
以下に現在のコードと問題があると思われるコードを書きます。
発生している問題・エラーメッセージ
入力側コードはこのようになっています。
HTML
1<form method="get" action="result.php" name="form"> 2 <p> 3 場所と日付を記入してください。その場所がその日、どのような天気であったか表示します。 4 </p> 5 <span>東京都内の区 6 <br> 7 <input type="text" name="place"> 8 </span> 9 <br> 10 <br> 11 <span>年(2012/12/1~2017/12/1) 12 <input type="text" name="year"> 13 /</span> 14 <span>月 15 <input type="text" name="month"> 16 /</span> 17 <span>日 18 <input type="text" name="day"> 19 /</span> 20 <br> 21 <p><input type="submit" value="Submit"></p> 22</form>
該当のソースコード
foreachがいけないという警告が出ますが、正直なところ解決策が全然わかりません…。
どのように記述すれば冒頭分のような結果にシンプルに出力できるか教えていただきたいです。
PHP
1<html> 2 <head> 3 <meta charset="utf-8"> 4 <title>result</title> 5 </head> 6 <body> 7 <?php 8 9 mysql_set_charset('utf8', $db_selected); 10 ini_set('display_errors',1); 11 12 $dbh = new PDO('mysql:host=;dbname=;charset=utf8mb4','root',''); 13 print("CONNECT SUUCESS<br/>"); 14 15 //フォームで送られてきた情報 16 $place = $_GET["place"]; 17 18 $year = $_GET['year']; 19 20 $month = $_GET['month']; 21 22 $day = $_GET['day']; 23 24 $data = "SELECT * FROM table_data WHERE place=$place and year=$year and month=$month and day=$day"; 25 26 $result = $dbh->query($data); 27 28 print("QUERY SUUCESS<br/>"); 29 30 foreach ($result as $row) { 31 32 echo $value[place]."区"; 33 34 echo '<br>'; 35 36 echo $row['year']."/".$row['month']."/".$row['day']; 37 38 echo '<br>'; 39 40 echo $row['weather']; 41 42 echo '<br>'; 43 44 break; 45 } 46 47 48 49 ?> 50 </body> 51</html> 52 53
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/26 07:14