Dans ma base de données, j'ai les colonnes Last et Current pour datetime. Juste pour garder un œil sur la dernière fois que quelqu'un a utilisé un identifiant valide pour le service que je construis.
Ce que je veux savoir, c'est s'il est possible de mettre à jour une colonne sur une ligne avec une autre colonne de cette ligne, tout en mettant à jour l'autre colonne en même temps
C'est-à-dire: définissez le dernier comme courant actuel, puis définissez le courant avec la date qui est en ce moment essentiellement?
Ne veut rien dire?
Essayez comme ça ..
$data=array('current_login'=>date('Y-m-d H:i:s'));
$this->db->set('last_login','current_login',false);
$this->db->where('id','some_id');
$this->db->update('login_table',$data);
requête générée par le code ci-dessus: -
UPDATE login_table
SET last_login = current_login, current_login
= '2018-01-18 15:24:13' WHERE id
= 'un_id'
si vous souhaitez mettre à niveau une seule colonne d'une ligne de tableau, vous pouvez utiliser les options suivantes:
$this->db->set('column_header', $value); //value that used to update column
$this->db->where('column_id', $column_id_value); //which row want to upgrade
$this->db->update('table_name'); //table name
$this->db->set('usage', 'usage'); //Set the column name and which value to set..
$this->db->where('tag', 'Java'); //set column_name and value in which row need to update
$this->db->update('tags'); //Set your table name
Essaye ça...
$data = array(
'name' => $_POST['name'] ,
'groupname' => $_POST['groupname'],
'age' => $_POST['age']
);
$this->db->where('id', $_POST['id']);
$this->db->update('tbl_user', $data);
J'utilise cette fonction pour toutes les mises à jour de mes sites CI
function _updateRowWhere($table, $where = array(), $data = array()) {
$this->db->where($where);
$this->db->update($table, $data);
}
$id= $this->input->Post('edit_id');
$date= $this->input->Post('date');
$title=$this->input->Post('title');
$content=$this->input->Post('content');
$value=array('date'=>$date,'content'=>$content,'title'=>$title);
$this->db->where('course_id',$id);
if( $this->db->update('course',$value))
{
return true;
}
else
{
return false;
}
Une autre façon d'écrire la requête de mise à jour est comme ci-dessous ...
$this->db->update('student',array('class'=>'xyz','name'=>'abc'),array('stud_id'=>20);
définir la classe xyz, nom abc où stud_id = 20 dans le tableau "étudiant" ..