如何在CodeIgniter中切换MYSQL tinyint值?

时间:2016-02-02 13:23:37

标签: php codeigniter

我想切换MYSQL" is_active"单击按钮时课程表中的值。

模型功能如下:

function statusCourse($id){
    $data = array(
        'is_active' => '!is_active'
    );
    $this->db->where('id', $id);
    $this->db->update('course', $data);
}

课程表中的is_active列是tinyint。

5 个答案:

答案 0 :(得分:2)

您可以通过以下方式执行相同的功能: -

// If is_active=1 then it become 0. If 0 then become 1.
$sql = "UPDATE course SET is_active = IF(is_active=1, 0, 1)";
$this->db->query($sql);

希望它会对你有所帮助:)。

答案 1 :(得分:0)

只需更新专栏?这将更新一列:

function statusCourse($id)
{
    $data = array(
          'is_active' => 0 //0 for false, 1 for true 
           );
    $this->db->set($data);
    $this->db->where('id', $id);
   $this->db->update('course'); //sets $id to 0, this COULD mean inactive. Your decision 

}

答案 2 :(得分:0)

我知道我来晚了,但是我有一个简单而又非常好的短方法:

function changeStatus($id){
   $sql = "UPDATE course SET is_active = 1-is_active where id = ".$id;
   $this->db->query($sql);
}

这会将值从1切换为0或从0切换为1;

答案 3 :(得分:-2)

DROP TABLE IF EXISTS `usuario`;
CREATE TABLE `usuario` (
  `id_usuario` int(11) NOT NULL AUTO_INCREMENT,
  `usuario` varchar(255) DEFAULT NULL,
  `tipo_usuario` varchar(255) DEFAULT NULL,
  `cargo` int(11) DEFAULT NULL,
  `correo_nacional` varchar(255) DEFAULT NULL,
  `correo_internacional` varchar(255) DEFAULT NULL,
  `internet` tinyint(1) NOT NULL DEFAULT '0',
  `nav_nacional` tinyint(1) NOT NULL DEFAULT '0',
  `direccion` int(11) DEFAULT NULL,
  PRIMARY KEY (`id_usuario`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

答案 4 :(得分:-2)

如何使用以下查询在Codeigniter中创建代码:

如果存在使用表,请使用滴表; CREATE TABLE usuario(id_usuario int(11)NOT NULL AUTO_INCREMENT,usuario varchar(255)DEFAULT NULL,tipo_usuario varchar(255)DEFAULT NULL,cargo int(11)DEFAULT NULL,correo_nacional varchar(255)DEFAULT NULL,correo_inter默认值NULL,Internet tinyint(1)不为空默认值'0',nav_nacional tinyint(1)不为空DEFAULT'0',说明int(11)默认值NULL,主键(id_usuario))ENGINE = InnoDB DEFAULT CHARSET = latin1; < / p>