Php 使用Codeigniter更新DB表中的字段状态
我想将“尚未”状态更新为“已” 有错误Php 使用Codeigniter更新DB表中的字段状态,php,mysql,database,codeigniter,codeigniter-3,Php,Mysql,Database,Codeigniter,Codeigniter 3,我想将“尚未”状态更新为“已” 有错误 A Database Error Occurred Error Number: 1054 Unknown column 'sudah' in 'field list' UPDATE `tb_peserta` SET `sudah` = '' WHERE `no_pendaftaran` = '13' Filename: C:/xampp/htdocs/codeigniter/system/database/DB_driver.php Line Number
A Database Error Occurred
Error Number: 1054
Unknown column 'sudah' in 'field list'
UPDATE `tb_peserta` SET `sudah` = '' WHERE `no_pendaftaran` = '13'
Filename: C:/xampp/htdocs/codeigniter/system/database/DB_driver.php
Line Number: 691
function status_verifikasi($no_pendaftaran){
$where = array('no_pendaftaran' => $no_pendaftaran);
$this->M_pendaftar->status_verifikasi($where,'tb_peserta');
redirect('admin/Ca_pendaftar');}
我的控制器
A Database Error Occurred
Error Number: 1054
Unknown column 'sudah' in 'field list'
UPDATE `tb_peserta` SET `sudah` = '' WHERE `no_pendaftaran` = '13'
Filename: C:/xampp/htdocs/codeigniter/system/database/DB_driver.php
Line Number: 691
function status_verifikasi($no_pendaftaran){
$where = array('no_pendaftaran' => $no_pendaftaran);
$this->M_pendaftar->status_verifikasi($where,'tb_peserta');
redirect('admin/Ca_pendaftar');}
我的型号
function status_verifikasi($where,$tb_peserta){
if ($status_verifikasi ='belum') {
$this->db->set('sudah');
} else{
$this->db->set('belum');
}
$this->db->where($where);
$this->db->update($tb_peserta);}
我的观点
<?=anchor('admin/Ca_pendaftar/status_verifikasi/'.$tb_peserta->no_pendaftaran,
'Konfirmasi', ['class'=>'btn btn-success btn-sm' , 'onclick'=>"return confirm('Ubah status pendaftar ?');"])?>
$this->db->set('sudah')代码>
应该是
$this->db->set('sudah','value')代码>
还有一个问题
//您使用了赋值运算符而不是比较运算符
if($status\u-verifikasi='belum'){
应该是
$this->db->set('column_name','value');
if($status\u-verifikasi=='belum'){
CodeigniterSet
语法应为
$this->db->set('column_name','value');
注意:Equal=
是赋值运算符。要进行比较,需要使用=
比较运算符
if ($status_verifikasi == 'belum') { .. }
更新1:
您需要像这样使用select查询检查以前的值,然后需要根据以前的值更新状态
function status_verifikasi($where,$tb_peserta){
$this->db->select('status_verifikasi');
$this->db->from($tb_peserta);
$this->db->where($where);
$result = $this->db->get()->result();
if($result && $result[0]->status_verifikasi =='belum')
{
$this->db->set('status_verifikasi','sudah');
} else{
$this->db->set('status_verifikasi','belum');
}
$this->db->where($where);
$this->db->update($tb_peserta);
}
set语法应该是$this->db->set('column_name','value');您缺少了一个相等的$status\u-verifikasi='belum'还有什么是$status\u-verifikasi
??if:status\u-verifikasi($where,$tb\u-peserta){if($status\u-verifikasi='belum'){$this->db->set($status\u-verifikasi='sudah')}否则{this->db->set($status_-verifikasi='belum');}$this->db->where($where);$this->db->update($tb_-peserta);}因此,出现了类似数据库错误的错误号:1054“字段列表”更新中的未知列“sudah”。php行号:691类似于此?状态验证($WHERE,$tb\peserta){if($this->db->set('status_-verifikasi','sudah');}else($this->db->set('status_-verifikasi','belum');}$this->db->where($where);$this->db->update($tb_-peserta);}它的工作,对于“尚未”到“已经”,但是,如果对于“已经”到“尚未”的帮助,则不起作用。我的意思是,我希望能够将状态从“尚未”更改为“已经”,并从“已经”更改为“尚未”$status\u verifikasi='belum'使用==@EkaWahyuSholeha$status\u verifikasi从何处获得此变量?@EkaWahyuSholeha$status\u verifikasi是colu的名字比如:status_-verifikasi($where,$tb_-peserta){if($status_-verifikasi='belum'){$this->db->set('status_-verifikasi','sudah');}else{$this->db->where($where);$this->db->update($tb-peserta)}{status_-verifikasi($where,$tb peserta){if($this->db->set('status_-verifikasi','sudah');}else($this->db->set('status_-verifikasi','belum');}$this->db->where($where);$this->db->update($tb_-peserta);}这可以工作,但只有一个会话,如果我想再次更改,这不起作用:(我不明白,你想说什么?如果很难解释,我很抱歉,因为我的英语不流利。我的意思是,状态默认值是“belum”,如果学生已经确认,状态将更改为“sudah”,如果你实现了我回答中提到的两个更改,那么状态将更改为“sudah”。