2016-07-29 2 views
0

日付フィールドに問題があります。私は新しいレコードを作成したり、既存のものを更新すると、日付フィールドが000-00-00.私は任意の日を選択日付ピッカーでjquery jtable updateとdate issueを作成する

として保存され、それが値をテーブルに格納されている(0000-00-00).

DBフィールドが日付タイプであります。

PHPのサンプルコードをダウンロードし、SQLの例を使用してDBを作成し、RecordDateフィールドを編集可能に変更します。同じ問題があります。

DB value: 0000-00-00 
JTable shows: 1899-11-30 

私は何をすべきですか? を助けてくださいこれは、コード jqueryのコードである: -

$(document).ready(function() { 


    var assignmentid= "<?php echo $assignmentid; ?>"; 
     //Prepare jTable 
     $('#PeopleTableContainer').jtable({ 
      title: 'Table of people', 
      actions: { 
       listAction: 'teacherfill.php?action=list&aid="<?php echo $assignmentid; ?>"', 
       createAction: 'teacherfill.php?action=create&aid="<?php echo $assignmentid; ?>"', 
       updateAction: 'teacherfill.php?action=update&aid="<?php echo $assignmentid; ?>"', 
       deleteAction: 'teacherfill.php?action=delete&aid="<?php echo $assignmentid; ?>"' 
      }, 
      fields: { 
       lecture_id: { 
        key: true, 
        create: false, 
        edit: false, 
        list: false 
       }, 
       lecture_no: { 
        title: 'Lecture No', 
        width: '40%' 
       }, 
       lecture_date: { 
        title: 'Lecture Date', 
        width: '20%', 
        type:'date' 
       } 

      } 
     }); 

     //Load person list from server 
     $('#PeopleTableContainer').jtable('load'); 

    }); 

PHPコード: -

if($_GET["action"] == "update" && $_GET["aid"]) 
{ 

$assignmentid=$_GET['aid']; 
    $updatedlecno=$_POST["lecture_no"]; 
    //$updatedlecdate=date("Y-m-d",strtotime($_POST['lecture_date'])); 
$updatedlecdate=$_POST['lecture_date']; 
    $lecid=$_POST["lecture_id"]; 
    $q="UPDATE lecture_schedule SET lecture_no=$updatedlecno,lecture_date=$updatedlecdate WHERE (lecture_id=$lecid)"; 
    $result = mysqli_query($conn,$q); 
    if($result) 
    { 
     $er="No error"; 
    } 
else{ 
    $er1=mysqli_error($conn); 
    $er="error"; 

} 
    //Return result to jTable 
    $jTableResult = array(); 
    $jTableResult['Result'] = "OK"; 
    //$jTableResult['status'] = $er; 
    //$jTableResult['date'] = $updatedlecdate; 




    print json_encode($jTableResult); 
} 
+1

insert文の日付を一重引用符で囲み、入力内容を忘れないように注意してください。 –

答えて

1

まず、*関数をmysql_を使用しないでください。これらの関数は推奨されなくなりました。代わりにmysqli_ *またはPDOを使用してください。

第2に、のデータをSQL文に入れないでください。 Bobby Tablesについて説明します。パラメータ化されたクエリを代わりに使用します。

第3に、$_POST['lecture_date']に実際に値が含まれているかどうかを確認します。あなたのサンプルデータでは、それはLecture_dateです。

第4に、SQLクエリの日付はまだ文字列です。正しく処理するには、値をSQLの単一引用符で囲む必要があります。それ以外の場合は2016-07-292016 - 7 - 29 = 1980と表示されます。私の3番目のポイントに対処するときは、これでエラーが発生するはずです。