私の質問を読んでくれてありがとう。PHP で for ループを使用して、ビジネスの開店時間と閉店時間の間の時間のリスト (5 分オフセット) のエコーを実現しようとしていました。その課題はプログラムするのに問題はありませんでした。私のコードは、タグの巨大なリストを出力し、<option>
各タグ内に時間値 (5 分ずらして) を正常に出力します。
いいえ:
<option value="2013-06-06 08:00:00">8:00 am</option>
<option value="2013-06-06 08:05:00">8:05 am</option>
<option value="2013-06-06 08:10:00">8:10 am</option>
.....etc.
ただし、各行の中に列がある MYSQL テーブルのセットアップ (DATETIME 形式でのセットアップ) があります。一度にオフにするので、その時間(forループ内)がデータベースからフェッチされた(予約された)時間のいずれかと等しい場合、その値はそのリストにエコーされません。
以下は私のコードです (少なくとも for ループ) これがタグを<option>
出力しているものです: .次に、次のチェックを続けます。)これは機能しましたが、$tee_times_from_mysqlが私の MYSQL データベースから SELECT されたとき、最も最近予約されたティータイム (1 つだけ) だけを取り、それを除外しました... .残りは無視されました(または、単にフェッチされなかった、確かではありません)....したがって、予約されたティータイムが複数ある場合(明らかにそれ以上になる可能性があります)は機能しません....私の質問は、データベース内のいずれかの時間に等しい場合、時間を除外する方法です。<option>
for ($i=$startHour; $i <= $endHour; $i++)
{
for ($j = 0; $j <= 55; $j+=5)
{
$time_pre = $i.":".str_pad($j, 2, '0', STR_PAD_LEFT);
$time = ''.$time_pre .' '.$day.'';
/////////////////////////////
$time_formated_for_cosmetic = date("g:i a", strtotime("$time"));
$time_formated_for_mysql = date("Y-m-d H:i:s", strtotime("$time"));
if ($time == $tee_times_from_mysql){
$time = '';
}
else{
$time = '<option value="' . $time_formated_for_mysql . '">'.$time_formated_for_cosmetic .'</option>';
}
echo $time;
}
}
これは私のMYSQL FETCHでもあります:
$tee_times_from_mysql = "";
$sql = "SELECT * FROM tee_times";
$query = mysqli_query($db_conx, $sql);
while($row = mysqli_fetch_assoc($query)){
$tee_times_from_mysql = $row["date_time"];
$tee_times_from_mysql = date("G:i n/j/y", strtotime("$tee_times_from_mysql"));
}