2013-05-20 23 views
0

我有一个jqgrid发送更新发布数据到我的php处理数据库。现在我有一个问题,将其中三列转换为所需的yyyy-mm-dd格式以注入到mysql数据库中。如何将数组中的数据从m/d/Y转换为mysql yyyy-mm-dd?在哪里做我正确转换,以便数据正确处理并发送到数据库?请真的需要帮助吗?如何使用jqgrid post数据在PHP数组中重新设置m/d/y的日期?

enter image description here

的jqGrid Colmodel代码:

{name:'lastvisit', index:'lastvisit', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',editable:true, edittype: 'text',mtype:'POST' ,  editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} , 


    {name:'cdate', index:'cdate', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy', edittype: 'text',editable:true ,mtype:'POST' ,editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} , 

    {name:'ddate', index:'ddate', width:70, align:'right',formatter: 'date',srcformat:'yyyy-mm-dd',newformat: 'm/d/yy',date:'true',editable:true, edittype: 'text',editoptions:{size:10, dataInit:function(elem){$(elem).datepicker({dateFormat:'m/d/yy'});}}} , 

这里是我的PHP代码:

/* columns array format: $_POST['VARIABLE'] => 'DB column name' */ 
$crudColumns = array(
    'id'=>'id' 
    ,'name'=>'name' 
    ,'id_continent'=>'id_continent' 
,'lastvisit'=>'lastvisit' 
    ,'cdate'=>'cdate' 
    ,'ddate'=>'ddate' 

); 

然后将它们清洗并准备好处理:

/*----====|| GET and CLEAN THE POST VARIABLES ||====----*/ 
foreach ($postConfig as $key => $value){ 
    if(isset($_REQUEST[$value])){ 
     $postConfig[$key] = fnCleanInputVar($_REQUEST[$value]); 
    } 
} 
foreach ($crudColumns as $key => $value){ 
    if(isset($_REQUEST[$key])){ 
     $crudColumnValues[$key] = '"'.fnCleanInputVar($_REQUEST[$key]).'"'; 
    } 
} 

DATABSE进行连接,然后发送到数据库更新行:

case $crudConfig['update']: 
     /* ----====|| ACTION = UPDATE ||====----*/ 
     if($DEBUGMODE == 1){$firephp->info('UPDATE','action');} 
     $sql = 'update '.$crudTableName.' set '; 
     /* create all of the update statements */ 
     foreach($crudColumns as $key => $value){ $updateArray[$key] = $value.'='.$crudColumnValues[$key]; }; 
     $sql .= implode(',',$updateArray); 
     /* add any additonal update statements here */ 
     $sql .= ' where id = '.$crudColumnValues['id']; 
     if($DEBUGMODE == 1){$firephp->info($sql,'query');} 
     mysql_query($sql) 
     or die($firephp->error('Couldn t execute query.'.mysql_error())); 
     break; 

回答

1

我可能不明白的问题,但如果你问如何从一个日期格式转换为另一种...

$bad_date = '5/16/2013'; 
$good_date = date('Y-m-d', strtotime($bad_date)); // returns 2013-05-16 

...你可以改变你的foreach ($crudColumns)这样的代码......

foreach ($crudColumns as $key => $value){ 
    if(isset($_REQUEST[$key])){ 
     if ($key == 'lastvisit' || $key == 'cdate' || $key == 'ddate') { 
      $crudColumnValues[$key] = '"'.date('Y-m-d', strtotime($_REQUEST[$key])).'"'; 
     } else { 
      $crudColumnValues[$key] = '"'.fnCleanInputVar($_REQUEST[$key]).'"'; 
     } 
    } 
} 
+0

我感谢你,但问题是我怎么这个融入这个PHP的系统,以便lastvisit,CDATE和ddate被转换成good_date然后以正确的格式发布到我的数据库行中?我会在哪里介绍它?总noob和任何指导是一个很大的帮助。 – NewHistoricForm

+0

我看到...在更新了答案 – neokio

+0

我已经重新安排了上面的答案。任何成功? – neokio