0

私の質問を読んでくれてありがとう。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"));

    }
4

1 に答える 1