2013-05-20 1 views
0

У меня есть jqgrid, который отправляет данные после публикации обновления на мой php для обработки в базу данных. прямо сейчас у меня проблема с преобразованием трех из этих столбцов в желаемый формат yyyy-mm-dd для ввода в базу данных mysql. Как преобразовать данные в этот массив из m/d/Y в mysql yyyy-mm-dd? Где черт я правильно конвертирую, чтобы данные обрабатывались правильно и отправлялись в базу данных? Пожалуйста, мне действительно нужна помощь в любых предложениях?Как переформатировать даты в m/d/y с помощью массива PHP из данных jqgrid post?

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, а затем отправлен в строку базы данных в правильном формате? Где бы я его представил? Общая нуб и любое руководство - большая помощь. – NewHistoricForm

+0

Я вижу ... обновляю ответ в мгновение – neokio

+0

Я переписал свой ответ выше. любой успех? – neokio