我的表名是预订:
| reservation_id(pk)|人数|能力|
当我输入的人数比no_of_people列减去容量列时,我希望这样 并为新的no_of_people更新容量列。 请告诉我如何更新容量表?
模型视图:
public function insert_into_db($people)
{
$sql = "INSERT INTO `reservation` (`no_of_people`) VALUES (?) ";
"SELECT *, `capacity`-`no_of_people` AS `capacity` FROM `reservation`";
$this->db->query( $sql, array($people) );
}
控制器视图
public function insert_people()
{
$people =$this->input->post('no_of_people');
$this->Books_model->insert_into_db($people);
redirect('Booking_Controller/view');
}
查看文件:
<form action="<?php echo base_url();?>index.php/Booking_controller/insert_people" method="POST">
<table>
<tr>
<td> <label for="no of people" class="col-sm-2 control-label"><td>Number Of People*</td></label>
</td>
<td> <input type = 'text' name='no_of_people'></td>
</tr>
<tr>
<td><input type='submit' class="btn btn-success" value="Book a Table"></td>
</tr>
</table>
请帮我找到我犯错的地方?
答案 0 :(得分:0)
正如@nathanmac所暗示的那样,这是一个糟糕的数据库设计范例。可用座位的容量和数量与特定预订完全无关,不应存储在那里。在其他严重的计算问题中,这意味着您总是引用最近的预订来获得座位数,如果预订十人预先修改他们的预订人数,您将不得不重新计算对于每个剩余的预订也是如此。
更好的方法 - 并注意到可能有六种好方法可以实现这一点 - 就像nathanmac所说的那样动态计算人数。每当您需要确定可用的座位数时,您将获取总容量计数并减去动态计算的预留数量。