如何自动更新phpmyadmin中的列

时间:2015-07-28 07:29:31

标签: php mysql database codeigniter

我的表名是预订:

| 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>

请帮我找到我犯错的地方?

1 个答案:

答案 0 :(得分:0)

正如@nathanmac所暗示的那样,这是一个糟糕的数据库设计范例。可用座位的容量和数量与特定预订完全无关,不应存储在那里。在其他严重的计算问题中,这意味着您总是引用最近的预订来获得座位数,如果预订十人预先修改他们的预订人数,您将不得不重新计算对于每个剩余的预订也是如此。

更好的方法 - 并注意到可能有六种好方法可以实现这一点 - 就像nathanmac所说的那样动态计算人数。每当您需要确定可用的座位数时,您将获取总容量计数并减去动态计算的预留数量。