php
  • javascript
  • mysql
  • 2013-04-29 45 views 0 likes 
    0

    我正在使用date time picker獲取日期並在db中有一個datetime類型字段,我試圖更新它。日期在使用PHP更新後以db格式插入錯誤格式?

    以下的jQuery的代碼對edit.php

    var nextdate= $("#"+date).attr('value'); 
    $('#div').load('edit.php?date='+nextdate); 
    

    在edit.php的請求,我得到了正確的日期2013-04-18 18:18:18

    但在數據庫中它被插入的格式如下:2013-04-18 00:00:00,其中實際日期是2013-04-18 18:18:18

    我也試過

    echo $d =$_GET['date']; 
    echo $date=date("Y-m-d H:i:s",strtotime($d)); 
    

    注意:直接更新查詢數據庫工作正常。

    PHP代碼

    update call_track set next_call_time='$date' where id='$id' 
    

    和數據庫查詢

    update call_track set next_call_time='2013-04-18 18:18:18' where id='118' 
    

    這是爲什麼不使用PHP代碼工作。

    這是代碼 上update.php

    function leaveChanger(id) 
    { 
        var tpid ='display_'+id; 
        var date='date_'+id; 
        var nextdate= $("#"+date).attr('value'); 
    
        $('#'+tpid).load('edit.php?id='+id+'&date='+nextdate); 
    
    
    } 
    </script> 
    <input type='button' name='' id='' value='Change' class='button green' Onclick='leaveChanger(118);return false;'/> <div id='dispaly_$id' style='color:red;'></div> 
    <input type='Text' value='$date' id='date_118' maxlength='25' size='19'/> 
    <img src='images2/cal.gif' onclick=\"javascript:NewCssCal ('date_118','yyyyMMdd','arrow',true,'24',true)\"/> <div id='display_118'></div> 
    

    edit.php

    include("../../dashboard/Includes/db_connect.php"); 
    echo $id=$_GET['id']; 
    
    echo $d =$_GET['date']; 
    echo $date=date("Y-m-d H:i:s",strtotime($d)); 
    
    echo $query="update call_track set next_call_time='$date' where id='$id'"; 
    
    if(mysql_query($query)) 
    echo "Updated"; 
    else 
    echo "Not Updated"; 
    
    +1

    您能否提供完整的代碼(php)? – Brewal 2013-04-29 13:25:08

    +0

    'echo $ d;'和'echo $ date;'的輸出是什麼? – megaflop 2013-04-29 13:26:22

    +1

    數據庫中的「next_call_time」列是否有可能是DATE列而不是DATETIME? – nvanesch 2013-04-29 13:27:31

    回答

    0

    您difining $pid變量,而不是$id。通過這一個

    $query="update call_track next_call_time='$date' where id='$id'";

    :替換此行

    $query="update call_track next_call_time='$date' where id='$pid'";

    下一次,嘗試的var_dump()整個查詢:var_dump($query); 你會發現生成的查詢是:

    update call_track set next_call_time='2013-04-18 18:18:18' where id=''

    這會影響0行,因爲沒有匹配空ID的記錄。

    +0

    感謝您的回答。它只是id不是pid – jaya 2013-04-29 14:16:29

    +0

    好吧,給它一個你想要的名字:) – Brewal 2013-04-29 14:19:34

    1

    謝謝大家。問題是通過將

    var nextdate= $("#"+date).attr('value'); 
        var date =encodeURIComponent(nextdate); 
    
        $('#'+tpid).load('edit.php?id='+id+'&date='+date); 
    

    encodeURIComponent方法解決解決了我的問題。

    相關問題