【问题标题】:updating fields in mysql table using values from a drop down menu使用下拉菜单中的值更新 mysql 表中的字段
【发布时间】:2015-02-27 23:51:43
【问题描述】:

我目前在使用下拉列表中的值编辑 mysql 数据库表中的字段时遇到问题。我希望能够在 mysql 数据库上修改和更新的字段是类型和时间,它们是从我网页的下拉列表中选择的。每当我从下拉菜单中更改“类型”时,它都能更新数据库,但会影响数据库中的“时间”字段,将值更新为 00:00:00。

这是我的代码的主要部分:

$id = $_GET['id'];

if(isset($_POST['update'])){

$type =  mysqli_real_escape_string($mysqli, $_POST['testtype']);


  $time = mysqli_real_escape_string($mysqli, $_POST['timeslot']);

     $query = "UPDATE bookings1 SET Type = '$type', Timeslot = '$time' WHERE booking_id = '$id'";

     $sqlquery = $mysqli->query($query);

}

$sqlquery = "SELECT * FROM bookings1 WHERE booking_id = '$id'";

$results = $mysqli->query($sqlquery);

if ($results->num_rows > 0) {

 while ($row = $results->fetch_assoc()){

       echo '<form method = "post"  action = "">';

          echo'Type:  <select id =  name ="testtype" > 

           <option value =""> '. $row["Type"].'  </option>

        <option value = "classIV"  > Class IV - Cars,light-vans,Motorcaravans (£35.00) </option>
        <option value = "classV" > Class V - Private Passenger vehicles & Minibuses (£44.99) </option>
        <option value = "classVI" > Class VI - Goods vehicles (£54.99) </option>
        <option value = "TaxiMOT" > Taxi MOT - Taxi vehicles (£35.00) </option>
        </select></br></br>';

      echo'Time:  <select id = "timeslot"  name ="timeslot" > 

        <option value =""> '. $row["Timeslot"].'  </option>

        <option value = "08:30" > 08:30 </option>

        <option value = "09:15" > 09:15 </option>

        <option value = "10:00" > 10:00 </option>

        <option value = "10:45" > 10:45 </option>

        <option value = "11:30" > 11:30 </option>

        <option value = "12:15" > 12:15 </option>

        <option value = "13:00" > 13:00 </option>

        <option value = "13:45" > 13:45 </option>

        <option value = "14:30" > 14:30 </option>

        <option value = "15:15" > 15:15 </option>

        <option value = "16:00" > 16:00 </option>

        <option value = "16:45" > 16:45 </option>

        <option value = "17:30" > 17:30 </option> 

        </select>

       echo '<input type = "submit" = name = "update" value = "update" />';

        echo '</form>';

【问题讨论】:

    标签: php


    【解决方案1】:

    尝试根据您要放入的数据库列格式化日期/时间字段:

    1. 如果您的 MySQL 列是 DATE 类型:

      $date = date('Y-m-d', strtotime(str_replace('-', '/', $date)));

    2. 如果你的 MySQL 列是 DATETIME 类型:

      $date = date('Y-m-d H:i:s', strtotime(str_replace('-', '/', $date)));

    convert php date to mysql format

    【讨论】:

    • 我已经更新了我的问题,它对日期没有影响,只会影响时间。每当我在“类型”下拉列表中选择一个选项时,都会影响时间字段并将其显示为 00:00:00
    猜你喜欢
    • 1970-01-01
    • 2013-06-18
    • 2021-04-01
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    相关资源
    最近更新 更多