それで、私は数日間試行錯誤して検索しており、助けを求めてここに目を向けています。
データベースのテーブルからスケジュール情報を取得して Web ページに表示するページを Web サイトに作成しました。同じ DB の 2 番目のテーブルから配色を取得しようとしています。最初のテーブルの名前が 2 番目のテーブルの名前と一致すると、その名前だけが割り当てられた別の色で表示されます。私のテーブルは次のようになります。
TBL1: id time timeframe 月 火 水 木 金 土 日 1 12a 00:00:00 Name1 Name2 Name3 Name2 Name5 Name6 Name7 2 1a 01:00:00 Name1 Name2 Name3 Name2 Name5 Name4 Name3 3 2a 02:00:00 Name1 Name2 Name4 Name2 Name2 Name6 Name2 4 3a 03:00:00 Name2 Name2 Name4 Name2 Name3 Name3 Name2
ect
TBL2: id 名前 色 1 名前1 #hexcolor 2 名前 2 #hexcolor2 3 名前3 #hexcolor3 ect$query = array('select' => "*", 'tbl' => "Schedule"); $query2 = array('select' => "name, color", 'tbl' => "dj_colors"); $name = "select t1.*, Monday.color, Tuesday.color, Wednesday.color, Thursday.color, Friday.color, Saturday.color, Sunday.color
FROM スケジュール t1 JOIN dj_colors 月曜日 ON t1.Monday = Monday.name, JOIN dj_colors 火曜日 ON t1.Tuesday = Tuesday.name, JOIN dj_colors 水曜日 ON t1.Wednesday = 水曜日.name, JOIN dj_colors 木曜日 ON t1.Thursday = 木曜日.name, JOIN dj_colors 金曜日 ON t1.Friday = Friday.name, JOIN dj_colors 土曜日 ON t1.Saturday = Saturday.name, JOIN dj_colors 日曜日 ON t1.Sunday = Sunday.name";
$DB = new DB(); $result = $DB->select_multi($query); foreach ($result as $arrayLoop) { $printout .= "<tr>"; foreach ($arrayLoop as $field => $data) { if ($field == 'id' || $field == 'TimeFrame') continue; if ($data === $name) $printout .= "<td color=".$color.">".$data."</td>"; else $printout .= "<td class='schedule4'>".$data."</td>"; } $printout .= "</tr>"; }
編集*これは私が思いついたものであり、私が望んでいるようにまだ機能していないため、まだ何かが欠けていると思います. 私は頭を悩ませ、適切な形式で使用している実際のテーブルの名前を付けました。まだ色を引っ張っていませんが、エラーは発生していません。ご容赦ください、私はまだ学んでいます。私は答えを求めているのではなく、どこを見ればいいのか、いくつかの役立つヒントを求めているだけです。