2016-11-26 23 views
2

私はdatetime-local入力を持つフォームを持っており、ユーザーがこのdatetime-localに入力した日付と時刻の値を抽出し、その値をデータベースのlistDatesという列に渡す方法を探していますテーブルdate_table;入力からdatetime-local値を取得してデータベースに挿入する適切な方法は何ですか?

私のデータベース接続は正常に動作します。そして、私は、テキストボックスを単純な文字列で追加するこれらの同様の機能を多く持っています。登録していないdatetime-localだけです(または、0000-00-00 00:00:00(1970年1月1日の初期日時の値)として登録します)。

日時、ローカルと私のデータベースにそれを渡す?あなたが提供することができます任意の助けをありがとう、私は唯一のPHPとMySQLiをコーディングして、この特定の部分で立ち往生しています。

マイフォーム

 <form> 

     <input name="theDate" type="datetime-local" required> 

     <a href="dateCRUD.php?theDate=<?php $_GET['theDate'] ?>&action='addDate'"</a> 

     <!--I'm not sure if $_GET should be the proper way to get the datetime-local value--> 
    </form> 

私のdateCRUD phpどこで追加、更新、date_tableというデータベーステーブルから日付を削除する

$theDate = isset($_REQUEST['theDate']); 

    switch($_REQUEST['action']){ 
     case 'addDate': 
     { 
      addDate($theDate); 
      break; 
     } 
    } 

addDateへの私のPHPのMySQLiを機能()

 function addDate($theDate) 
     { 
      global $conn; //my connection to my database which works fine. 

      $query = 'INSERT INTO date_table SET listDates = ?'; 
      $stmt = $conn->prepare($query); 
      $stmt->bind_param('s', $theDate) //can datetime-local be a 'string'? 
      $stmt->execute(); 
     } 

EDIT

それが助け場合、私は私の中に私のdate_tableの '日時' に私のlistDateタイプを設定データベース。代わりに 'string'型に変更する必要がありますか?

+0

は、$ theDate値をエコーアウトします。私はそれがデータベースが理解できないタイムゾーン情報を追加しているので、値をゼロに設定していると推測しています。タイムゾーン情報を保持したい場合は、この情報を抽出し、データベースに別のフィールドを作成してそこに格納する必要があります。 – jeff

答えて

2

datetime-local入力をサーバーに送信し、データベースに格納しようとするフォームに問題があります。データベースのdate_tableのdatetime型は正常です。 datetimeは、datetime-local値を格納します。あなたのフォーム<a href="dateCRUD.php?theDate=<?php $_GET['theDate'] ?>&action='addDate'"</a>では、<?php $_GET['theDate'] ?>は、サーバーに日付時刻ローカル値を送信しません。フォームのボタンを使用してフォームの値を送信する必要があります。

<form method="post" action="dateCRUD.php&action=addDate"> 
     <input name="theDate" type="datetime-local" required> 
     <input type="submit" name="addDate"> 

</form> 

などのようなPHPコードは、データベース内の店舗の日付の同じMySQL関数を使用し

if(isset($_POST['addDate'])){ 
$theDate = isset($_POST['theDate']); 
switch($_REQUEST['action']){ 
    case 'addDate': 
    { 
     addDate($theDate); 
     break; 
    } 
} 
} 

として更新します。

+0

ありがとう!私はそれが今どのように動作するか理解しています – 5120bee

関連する問題