0

データベースに処理するために更新投稿データをphpに送信するjqgridがあります。現在、これらの列のうち 3 つを、mysql データベースに挿入する目的の yyyy-mm-dd 形式に変換する際に問題があります。この配列のデータを m/d/Y から mysql yyyy-mm-dd に変換するにはどうすればよいですか?データが正しく処理されてデータベースに送信されるように、どこで正しく変換すればよいですか? 本当に助けが必要ですか?

ここに画像の説明を入力

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]).'"';
    }
} 

データベースに接続し、行を更新するためにデータベースに送信します。

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;
4

1 に答える 1

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]).'"';
        }
    }
} 
于 2013-05-20T04:41:03.517 に答える