tutorial result_array query queries last_query mysql select codeigniter where-clause

mysql - result_array - CodeIgniter: cómo usar la cláusula WHERE y la cláusula OR



queries codeigniter (6)

Lo que funcionó para mí:

$where = ''''; /* $this->db->like(''ust.title'',$query_data[''search'']) ->or_like(''usr.f_name'',$query_data[''search'']) ->or_like(''usr.l_name'',$query_data[''search'']);*/ $where .= "(ust.title like ''%".$query_data[''search'']."%''"; $where .= " or usr.f_name like ''%".$query_data[''search'']."%''"; $where .= "or usr.l_name like ''%".$query_data[''search'']."%'')"; $this->db->where($where); $datas = $this->db->join(TBL_USERS.'' AS usr'',''ust.user_id=usr.id'') ->where_in(''ust.id'', $blog_list) ->select(''ust.*,usr.f_name as f_name,usr.email as email,usr.avatar as avatar, usr.sex as sex'') ->get_where(TBL_GURU_BLOG.'' AS ust'',[ ''ust.deleted_at'' => NULL, ''ust.status'' => 1, ]);

Tengo que hacer esto para crear una consulta como esta:

SELECT `ust`.*, `usr`.`f_name` as `f_name`, `usr`.`email` as `email`, `usr`.`avatar` as `avatar`, `usr`.`sex` as `sex` FROM `blog` AS `ust` JOIN `users` AS `usr` ON `ust`.`user_id`=`usr`.`id` WHERE (`ust`.`title` LIKE ''%mer%'' ESCAPE ''!'' OR `usr`.`f_name` LIKE ''%lok%'' ESCAPE ''!'' OR `usr`.`l_name` LIKE ''%mer%'' ESCAPE ''!'') AND `ust`.`id` IN(''36'', ''37'', ''38'') AND `ust`.`deleted_at` IS NULL AND `ust`.`status` = 1 ;

Estoy usando el siguiente código para seleccionar de una base de datos MySQL con una aplicación de código de Ignitor:

$query = $this->db->get_where(''mytable'',array(''id''=>10));

Esto funciona genial! Pero quiero escribir la siguiente declaración de MySQL usando la biblioteca de CI.

SELECT * FROM `mytable` WHERE `id`=''10'' OR `field`=''value''

¿Algunas ideas? ¡Gracias!


Método de registro activo o or_where se usará:

$this->db->select("*") ->from("table_name") ->where("first", $first) ->or_where("second", $second);


Puede usar or_where () para eso - ejemplo de los documentos de CI:

$this->db->where(''name !='', $name); $this->db->or_where(''id >'', $id); // Produces: WHERE name != ''Joe'' OR id > 50


Puedes usar esto:

$this->db->select(''*''); $this->db->from(''mytable''); $this->db->where(name,''Joe''); $bind = array(''boss'', ''active''); $this->db->where_in(''status'', $bind);


$where = "name=''Joe'' AND status=''boss'' OR status=''active''"; $this->db->where($where);


$where = "name=''Joe'' AND status=''boss'' OR status=''active''"; $this->db->where($where);

Aunque tengo 3/4 de un mes de retraso, aún ejecutas lo siguiente después de que tus cláusulas where estén definidas ... $this->db->get("tbl_name");