最近、私はこの質問(Converting day of week to dates for the current month with MYSQL & PHP)を投稿し、多くの有益な回答を得ました。PHPを使用した配列とMySQLクエリの日付の比較と出力
私はこれに基づいてさらに何かをしたいと思いますが、もう一度私の知識の限界に達し、いくつかのガイダンスを探しています。
目的: 私は今週の定期的なイベント/出席を持っています。これは、上記のおかげで今月の日付と一致して表示できます。また、私はこれらの毎週の定期的なイベント/出席のキャンセル/日付変更のデータベースを持っています。
私はこれらの2つを1つのテーブルに表示するには一致させたいと思います。あなたは、私がモバイルのためにこれを作ってるんだ見ることができるように
:ここ
は、現在の状況です。現在、私は上に設定されたスケジュールを表示し、下にはキャンセル(赤色)と一回限りの他のイベントへの予約(緑色)が表示されます。第二部のための
$sql = "SELECT StudentDB.studentid, ClassDB.classID, ClassDB.class_level, ClassDB.class_title, ClassDB.time, ClassDB.teacher, StudentDB.first_name, StudentDB.last_name, StudentDB.payment_amount, ClassDB.day
FROM ClassDB
INNER JOIN RegDB ON ClassDB.classID = RegDB.classid
INNER JOIN StudentDB ON StudentDB.studentID = RegDB.studentid
WHERE StudentDB.studentid = '$studentid'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table class='table table-hover'>";
echo "<tr><th colspan=2 class='text-center'>固定レッスン</th></tr><tr><th>クラス</th><th>開始時間</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
$dayofclass = $row['day'];
echo "<tr><td>".$row["class_level"]." ".$row["class_title"]."</td><td>".$row['day']." ".$row['class_time']." " .$row['time']. "</td></tr>";
}
$n=date('t',strtotime($date)); // find no of days in this month
$yearmonth = date("Y-m-");
$dates=array();
for ($i=1;$i<=$n;$i++){
if ($i<10) {
$i = "0" . $i;
}
$day=date("l",strtotime($yearmonth.$i)); //find weekdays
if($day==$dayofclass){
$dates[]=$yearmonth.$i;
}
}
$arrlength = count($dates);
for($x = 0; $x < $arrlength; $x++) {
$y = $x +1;
echo "<tr><td>Week ".$y."</td><td>".$dates[$x]."</td></tr>";
}
echo "</table>";
}
とコード:
$sql = "SELECT AttendanceDB.*, ClassDB.*
FROM StudentDB
INNER JOIN AttendanceDB ON StudentDB.studentid = AttendanceDB.studentid
INNER JOIN ClassDB ON AttendanceDB.classid = ClassDB.classID
WHERE StudentDB.studentid = '$studentid' AND AttendanceDB.class_time >= '$date'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<table class='table table-hover'>";
echo "<tr><th colspan=2 class='text-center'>振替の予定</th></tr><tr><th>クラス</th><th>開始時間</th></tr>";
// output data of each row
while($row = $result->fetch_assoc()) {
$phpdate = strtotime($row["class_time"]);
$mysqldate = date('Y-m-d', $phpdate);
if ($row["furikae"] == 3){
echo "<tr class=success><td>振替(".$row["class_level"]." ".$row["class_title"].")</td><td>".$mysqldate." " .$row['time']. "</td></tr>";
} elseif ($row["furikae"] == 8) {
echo "<tr class=warning><td>承認待ち</td><td>".$mysqldate." " .$row['time']. "</td></tr>";
} elseif ($row["furikae"] == 2) {
echo "<tr class=danger><td>休み</td><td>".$mysqldate." " .$row['time']. "</td></tr>";
}
}
}
データの最初のセットは、配列に格納されている
は、ここに私の最初の部分のコードです。私は何をする必要があると仮定すると、2つ目の段階で配列に物事を入力し、それらの2つの配列の情報を比較し、1つにマージし、最初のものに対応する別の配列を持っている"欠席"した後、新しい配列をマスターリストに出力しますか?
これは正しいですか?このコードを動作させる方法を概念化するのに問題があります。
ありがとうございます。