如何使用具有相同名称的多个选择中的值更新表?

时间:2014-05-11 13:58:40

标签: php mysql sql

我有一系列选择填充了mysql数据。注意:日期名称是标签

Sunday    time_from    time_to
Monday    time_from    time_to
Tuesday   time_from    time_to
...
Saturday  time_from    time_to 

在数据库中,这些存储在名为 availability 的表中,其结构为:

CREATE TABLE `staff_availability` (
  `staff_availability_id` int(11) NOT NULL AUTO_INCREMENT,
  `staff_id` int(11) NOT NULL,
  `day_id` int(1) NOT NULL,
  `time_from_id` int(2) DEFAULT NULL,
  `time_to_id` int(2) DEFAULT NULL,
  PRIMARY KEY (`staff_availability_id`)
);

此表链接到其他2个表以获得相当用户可读的名称和时间但是对于UPDATE / INSERT我不需要那些因为选择将各自的time_from_id等作为值(除了作为标签的天数)

我的php运行2个foreach循环 - 一个用于time_from,另一个用于time_to,它生成如下选择:

<select id="time_from" class="form-control input-sm" name="time_from">

<option value="null">Not Available</option>
 <?php foreach ($this->time_slots as $time) {

     if ($time->time_slot_id == $availability->time_from_id) { ?>

          <option value="<?php echo $time->time_slot_id; ?>" selected="selected"><?php echo $time->time; ?></option>

     <?php } else { ?>
          <option value="<?php echo $time->time_slot_id; ?>"><?php echo $time->time; ?></option>

    <?php }
} ?>
</select>  

问题:$ _POST ['time_from']和$ _POST ['time_to']只返回一个值。如何返回所有7对选择以更新staff_availability表中的7个时隙,如下所示:

day_id    time_from_id    time_to_id
1         2               14
2         4               14
3         2               14
...

1 个答案:

答案 0 :(得分:0)

如果您更好地为<select>命名,则可以访问其中的所有7个。

<select name="time_from[0]" ...>

有关详细信息,请参阅PHP文档中HTML FAQ中的第3点。