我有两个表,一个包含一天中所有可用的工作时间,另一个表包含某人声明他们可用的时间。当我创建我的<select>
表单字段时,我想自动选择哪个时间已在数据库中,该日期和时间的tutor_id
位于tutor_ availability
。PHP MySQL两个查询 - Foreach
hours_list tutor_availability
---------------------- --------------------------------------
24hour | 12hour tutor_id | day | start_time | end_time
---------------------- --------------------------------------
1000 | 10:00am 27 | mon | 1000 | 1100
---------------------- --------------------------------------
1030 | 10:30am
----------------------
1100 | 11:00am
----------------------
1130 | 11:30am
----------------------
//the list goes on
我已经尝试了几个查询与Left Join
的几乎没有成功。我想我可以做两个单独查询,但后来我遇到了一个问题,如何选择正确的选项字段,同时遍历结果从hours_list
:
$hours = Select * FROM hours_list;
//next query
$available = Select day, start_time, end_time
FROM tutor_availability WHERE tutorid = '27';
foreach ($hours as $option) {
echo '<option value="' . $option['24hour'] . '"';
if ($available['start_time'] == $option['24hours'] && $available['day'] == 'mon') {
echo 'selected'; }
//rest here
然而,我无法弄清楚如何迭代两个sql结果以获得正确的结果。
第一张桌子和第二张桌子之间的关系是什么? –
@PrasanthBendra真的没有关系。第一张桌子储存所有的时间(即:一天24小时)。第二个表存储导师选择的可用性。第一个表是静态的,只存储在MySQL中,用于每个用于遍历小时的选项。 – cantaffordretail