前回に引き続き、質問させていただきます。
現在タスク機能付きのカレンダーを作成しているところでして、SELECT文でMySQLからカラムを表示しようとしたところ、中々うまくいきません。
方法として、$taskという変数と、$taskDataという連想配列を準備し、
$rowにテーブル情報を格納。
最後に、$taskという変数に<td></td>という処理をもたせ、ループすることで、タスクありの日付をカレンダーから選択されたときに、その日のテーブル情報を引っ張ってこれるのではないかと思っておりました。
↓画像の<tabale>タグに、index.phpで作成しているカレンダーの日付に格納されている情報を表示したく思っております。
![イメージ説明]WIDTH:390
あと、もう少しな気がするのですが、知識不足でつまづいてしまいました。
具体的な表示方法等(記述)がありましたら、ご指導宜しくお願い致します。
lang
1<?php 2require_once('dbconnect.php'); 3// 年月日のパラメータを取得する。 4$ymd = isset($_GET['ymd']) ? $_GET['ymd'] : date("Y-m-d"); 5$task = ""; 6// タスクの配列を準備 7$taskData = array(); 8// PHP->MySQLtable 9// タスクのパラメータを送れるようにする。 10$query = $mysqli->query(" SELECT * FROM tasks WHERE task_date = '$ymd' "); 11 // エラー処理 12 if (!$query) { 13 die('クエリーが失敗しました。'.mysql_error()); 14 } 15 // 日ごとにタスクを取得 16 while ($row = $query->fetch_assoc()) { 17 $taskData[] = array( 18 'id'=>$row['id'], 19 'title'=>$row['title'], 20 'task_date'=>$row['task_date'], 21 'place'=>$row['place'], 22 'memo'=>$row['memo'] 23 ); 24 } 25 if (isset($taskData[$row])) { 26 // 結合代入演算子を使用して、<td>を取得。配列の箱が完成。 27 $task .= str_repeat('<td></td>', 5); 28 $tasks = '<td>'.$row.'</td>'; 29 // タスクを初期化 30 $task = ""; 31 } 32?> 33<!DOCTYPE html> 34<html lang="ja"> 35<meta charset="utf-8"> 36<title>Today | タスク一覧</title> 37<table border="1"> 38 <thead> 39 <tr> 40 <th>タイトル</th> 41 <th>日時</th> 42 <th>場所</th> 43 <th>メモ</th> 44 </tr> 45 </thead> 46 <tbody> 47 <?php 48 echo $task; 49 ?> 50 </tbody> 51</table> 52 <p><a href="index.php">追加画面に戻る</a></p> 53</html>
追記:皆様ご回答ありがとうございます。まとめてみたところ、以下のような記述となりました。
ですが、表示はされません。
lang
1<?php 2require_once('dbconnect.php'); 3// 年月日のパラメータを取得する。 4$ymd = isset($_GET['ymd']) ? $_GET['ymd'] : date("Y-m-d"); 5// タスクの配列を準備 6$task = ""; 7$taskData = array(); 8// PHP->MySQLtable 9// タスクのパラメータを送れるようにする。 10$query = $mysqli->query(" SELECT * FROM tasks WHERE task_date = '$ymd' "); 11 // エラー処理 12 if (!$query) { 13 die('クエリーが失敗しました。'.mysql_error()); 14 } 15while ($row[] = $query->fetch_assoc()) { 16 // 各メンバ取得 17 $taskData[] = array( 18 'id'=>$row['id'], 19 'title'=>$row['title'], 20 'task_date'=>$row['task_date'], 21 'place'=>$row['place'], 22 'memo'=>$row['memo'] 23 ); 24 // タスクを表示形式に設定 25 $task .= "<td>".$row."</td>"; 26} 27?> 28<!DOCTYPE html> 29<html lang="ja"> 30<meta charset="utf-8"> 31<title>Today | タスク一覧</title> 32<table border="1"> 33 <thead> 34 <tr> 35 <th>タイトル</th> 36 <th>日時</th> 37 <th>場所</th> 38 <th>メモ</th> 39 </tr> 40 </thead> 41 <tbody> 42 <?php foreach ($taskData as $row): ?> 43 <tr> 44 <td><?= htmlspecialchars($row['title']) ?></td> 45 <td><?= htmlspecialchars($row['task_date']) ?></td> 46 <td><?= htmlspecialchars($row['place']) ?></td> 47 <td><?= htmlspecialchars($row['memo']) ?></td> 48 </tr> 49 <?php endforeach; ?> 50 </tbody> 51</table> 52 <p><a href="index.php">追加画面に戻る</a></p> 53</html>
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/07/10 03:42
2015/07/10 04:47
2015/07/10 08:14