【问题标题】:How to automatically update the column in phpmyadmin如何自动更新phpmyadmin中的列
【发布时间】:2015-07-28 07:29:30
【问题描述】:

我的桌子名是预订:

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

请帮我找出哪里出错了?

【问题讨论】:

  • 这与 phpmyadmin 有什么关系?无论如何,您可以使用 mysql 端的触发器来执行此操作。更多信息在这里:official documentation
  • 为什么要将容量存储在预留表中,它是一个动态值,SELECT SUM(no_of_people) as capacity FROM reservations

标签: php mysql database codeigniter


【解决方案1】:

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

如 nathanmac 所说,一个更好的方法 - 请注意,可能有六种好方法可以实现这一点 - 是动态计算人数。每当您需要确定有多少座位可用时,您都可以获取总容量计数并减去动态计算的预订数量。

【讨论】:

    猜你喜欢
    • 2021-02-04
    • 1970-01-01
    • 2015-12-25
    • 2014-12-07
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多