Mettre à jour la valeur de la table de colonnes dans Codeigniter avec Array [duplicate]
J'ai une fonction pour la table de mise à jour comme ci-dessous
$update_data = array( 'total_pending'=>$amount,
'total_received'=>0,
'total_send'=>0,
'my_wallet'=>0,
'spen_in_app'=>0,
'check_in'=>0,
'upload_video'=>0,
'from_fans'=>0,
'purchased'=>0
);
Cela fonctionne bien mais je veux mettre à jour la colonne total_pending avec total_pending + $ amount mais cela donne une erreur comme
A non-numeric value encountered
n'importe qui peut s'il vous plaît m'aider pour résoudre le problème? Merci
Réponses
1 DilipPatel
vous pouvez utiliser comme ça car total_pending est le nom de la colonne
$update_data = array( 'total_pending'=> `total_pending` + $amount,
'total_received'=>0,
'total_send'=>0,
'my_wallet'=>0,
'spen_in_app'=>0,
'check_in'=>0,
'upload_video'=>0,
'from_fans'=>0,
'purchased'=>0
);
Armnature
Changez simplement la méthode de mise à jour BULK avec $ query-> set, et incluez ce code ici
$this->db->set('total_pending', "total_pending+$amount");
AnkitJindal
Essayez d'utiliser l'une des méthodes ci-dessous:
Si vous souhaitez définir des colonnes individuellement, vous pouvez définir des conditions if sur celles-ci:
$this->db->set('total_received', 0); $this->db->set('my_wallet', 0);
$this->db->set('total_send', 0); $this->db->set('from_fans', 0);
$this->db->set('my_wallet', 0); $this->db->set('check_in', 0);
$this->db->set('purchased', 0); $this->db->set('upload_video', 0);
$this->db->set('spen_in_app', 0); $this->db->where(condition); //like ('id', $id) $this->db->set('total_pending', "total_pending+$amount"); $this->db->update('tablename');
Ou vous pouvez essayer la méthode ci-dessous en envoyant toutes les colonnes dans un seul tableau:
$update_data = array( 'total_pending'=> `total_pending` + $amount,
'total_received'=>0,
'total_send'=>0,
'my_wallet'=>0,
'spen_in_app'=>0,
'check_in'=>0,
'upload_video'=>0,
'from_fans'=>0,
'purchased'=>0
);