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");