除了DB中的那些外,所有时间都打印

时间:2013-04-17 13:51:24

标签: php html mysql forms date

我需要一个关于如何制作HTML / PHP表单的建议。我需要创建一个包含一些选项的列表框。目前我有类似这些选项:

<option value="17:00:00">17:00</option>
<option value="18:00:00">18:00</option>
<option value="19:00:00">19:00</option>

在我的数据库中,我有两列:ID和时间。

假设我有一行ID:1和时间:18:00:00。

如何制作它以便它不会出现在我的列表框中?当然我已经打开了与DB的连接。

感谢您的任何建议!

编辑:为什么downvotes?我的问题出了什么问题?我有时候并不真正理解这个社区。

2 个答案:

答案 0 :(得分:1)

<?php
$all_times = array('17:00:00', '18:00:00' ...) ;
$times_in_db = fetchTimes($your_db); // expected to return an array of all 'times' in your DB
$diff = array_diff($all_times, $times_in_db);

foreach ($diff as $time) {
    echo "<option value=\"$time\">$time</option>";
}

答案 1 :(得分:1)

  1. 使用数据库查询获取值,以便获得类似$blacklist = array('18:00','19:00')
  2. 的内容
  3. 使用if(!in_array('18:00', $blacklist)){...}
  4. 检查黑名单的时间

    如果您将列入白名单的值作为数组,并且您不想签入查看部分,那么最好使用array_diff作为@YaK回答