2017-09-13 62 views
0

我想從datepicker插入日期,但sql語句不工作imo。 這裏是代碼:插入日期從datepicker到MySQL數據庫在php

if(isset($_POST['confirm'])) 
{ 
    $order_finish_time = $_POST['order_finish_time']; 
    $note = $_POST['note']; 
    $finish_query = mysqli_query($link, "INSERT INTO orderdetails SET order_finish_time=$order_finish_time AND note=$note WHERE order_id=$order_id"); 
    $order_r = mysqli_fetch_array($finish_query); 
    if(isset($order_r)) 
    { 
     $result = mysqli_query($link, "UPDATE orderdetails SET order_status = 'Order_Finished' WHERE order_id=$order_id"); 
     ?> 
     <script>alert('Order confirmed!');</script> 
     <script>document.location = 'orderdetails.php';</script> 
     <?php 
    } 
    else 
    { 
     ?> 
     <script>alert('Something wrong');</script> 
     <script>document.location = 'orderdetails.php';</script> 
     <?php 
    }   
} 

代碼的其他部分工作,並即時得到一些錯誤消息。如果你能在我的代碼中發現錯誤,請幫我解決。

使用形式IM是:

<html> 
 
<head> 
 
</head> 
 
<body> 
 
\t <form class="form-horizontal" method="post"> 
 
\t \t <div class="row"> 
 
\t \t \t <div class="col-xs-12"> 
 
\t \t \t \t Order will be finished : 
 
\t \t \t \t <input id="datepicker" class="form-control" name="order_finish_time" required/> 
 
\t \t \t </div> 
 
\t \t </div> 
 
\t \t <button type="submit" name="confirm" id="confirm" class="btn btn-success btn-lg" style="width: 100%;"> 
 
\t \t \t <span class="glyphicon glyphicon-ok-sign"></span> 
 
\t \t \t Confirm 
 
\t \t </button> 
 
\t </form> 
 

 
\t <!-- datepicker --> 
 
\t <script> 
 
\t $("#datepicker").datepicker({ 
 
\t \t dateFormat : 'yy-mm-dd' 
 
\t }); 
 
\t </script> 
 
</body> 
 
</html>

這裏是我的表的圖片: enter image description here

+0

請向我們展示您使用的窗體和Datepicker插件。 –

+0

請分享您的數據庫表結構和您收到的錯誤。我建議你用單引號將你的字符串放在你的查詢中。請考慮MySql Date,Datetime和Timestamp類型只接受幾種格式。 –

回答

0

你的代碼似乎在許多方面是不完善的。頭部沒有定義jQuery和jQuery UI。 您的表單缺少名稱爲text的字段。 沒有數據庫連接。 變量$order_id未在您的代碼中定義。

在執行語句後使用var_dump(mysqli_error_list($link));來查看SQL中可能存在的錯誤。這是程序風格。

您的查詢完全錯誤。您不能使用where子句插入,它用於選擇,更新和刪除。

正確插入查詢將

$finish_query = mysqli_query($link, "INSERT INTO `orderdetails` (`order_finish_time`, `note`) VALUES ('$order_finish_time', '$note')"); 

請解釋一下你的程序是應該做的。它現在寫的方式沒有意義。這是有效的,但由於我不知道你的意圖,它可能是 - 在邏輯上是錯誤的。

<?php 
if (isset($_POST['confirm'])) { 
    $order_finish_time = $_POST['order_finish_time']; 
    $note = $_POST['note']; 
    $link = mysqli_connect('localhost', 'root', '', 'orderdetails'); 
    $finish_query = mysqli_query($link, "INSERT INTO `orderdetails` (`order_finish_time`, `note`) VALUES ('$order_finish_time', '$note')"); 
    $order_id = mysqli_insert_id($link); 
    if($finish_query === true) 
    { 
     $result = mysqli_query($link, "UPDATE `orderdetails` SET `order_status` = 'Order_Finished' WHERE `id`=$order_id"); 
     ?> 
      <script>alert('Order confirmed!');</script> 
      <script>document.location = 'orderdetails.php';</script> 
     <?php 
    } 
    else 
    { 
     ?> 
      <script>alert('Something wrong');</script> 
      <script>document.location = 'orderdetails.php';</script> 
     <?php 
    }   
} 

?> 
+0

ow非常感謝!是的,我的sql語句不正確,這是一個有點排序和訂單接受系統,我沒有發佈整個代碼becase試圖更清楚。當我進入這個頁面時,我通過鏈接得到了order_id,但是我沒有提交表單的order_id,所以我的錯誤更符合邏輯,現在我修復了一切,並且工作得很好:)再次感謝您的幫助 –

+0

沒問題,它如果你接受答案會很好,如果它對你有用,就會贊成。謝謝! –