2016-08-23 248 views
0

我正在使用MySqli作爲MySql服務器。我設立的,用戶可以在HTML的形式使用日期輸入型輸入日期形式:MySql使用html日期輸入選擇帶日期時間的日期範圍

<div class="ElHolder"> 
    <form action="productionOutput.php" method="get"> 
     <input type="date" name="packHistDate" required> 
     <input type="submit"> 
    </form> 
</div> 

然後我使用PHP獲取輸入的日期,我試圖在我的SQL使用它查詢。我在我的代碼中早先設置了$packHistDate = $_GET["packHistDate"]

 $sql = "SELECT 
        PRODUCTS.ProductId, 
        PRODUCTS.Name, 
        DATE(PACKING_QUEUE.DatePackFinished) AS \"DateFinished\", 
        PACKING_QUEUE.Packets, 
        PACKING_QUEUE.SizeCode, 
        PACKING_QUEUE.RunSize, 
        BATCHES.BatchId 
       FROM PACKING_QUEUE 
        JOIN BATCHES ON BATCHES.BatchId = PACKING_QUEUE.BatchId 
        JOIN PRODUCTS ON PRODUCTS.ProductId = BATCHES.ProductId 
       WHERE PACKING_QUEUE.Status = 6 AND PACKING_QUEUE.DatePackFinished BETWEEN ".$packHistDate." AND NOW() 
       ORDER BY PACKING_QUEUE.DatePackFinished DESC"; 
     $result = $conn->query($sql); 

     if (!$result) { 
      printf("Errormessage: %s\n", $conn->error); 
     } 

PACKING_QUEUE.DatePackFinished是DATETIME,我認爲這是在錯誤的出現。但是,我沒有得到任何代碼執行的錯誤消息,但所有日期都會返回。

我曾嘗試使用DATE()將它們全部轉換爲日期,但仍然無法正常工作。

任何幫助是極大的appriciated

更新:增加單引號中".$datePackFinished."所以它像'".$datePackFinished."'圍繞定了!

+0

你是否對「$ packHistDate」內容感興趣? –

+0

迴應您的查詢並檢查 –

+1

'$ packHistDate'必須爲'YYYY-MM-DD'格式。先檢查一下。我認爲它也必須被引用。 – MadMarc

回答

0

".$datePackFinished."周圍添加在單引號所以它像'".$datePackFinished."'固定它做到這一點!

0

我只是更改日期部分。只是改變日期部分像

BETWEEN NOW() AND ".$packHistDate." 

和我的工作。

,或者您可以通過添加額外的單引號

BETWEEN NOW() AND '".$packHistDate."' 
+0

當我嘗試一切都沒有得到回報。 – Ryan

+0

我想你需要給出額外的單引號,沒有單引號我得到所有數據,但是使用這個得到確切結果 '「。$ packHistDate。」 ' 現在() –