Foros del Web » Programando para Internet » PHP » CodeIgniter »

[SOLUCIONADO] combinar OR con AND en active record

Estas en el tema de combinar OR con AND en active record en el foro de CodeIgniter en Foros del Web. Hola amigos, Necesito de su ayuda con transformar una cláusula where de mysql al active record usando codeigniter. sé que si tengo algo como @import ...
  #1 (permalink)  
Antiguo 26/02/2013, 11:52
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 11 meses
Puntos: 3
combinar OR con AND en active record

Hola amigos,

Necesito de su ayuda con transformar una cláusula where de mysql al active record usando codeigniter.

sé que si tengo algo como
Código SQL:
Ver original
  1. WHERE tabla1.campo1 = valor1 AND tabla2.campo2 = valor2
para usarlo en active record tendría que ser así:
Código SQL:
Ver original
  1. $array = array('tabla1.campo1' => valor1,'tabla2.campo2' => valor2);
  2. $query = $this->db->WHERE($array)->GET('tabla');

Lo que no puedo hacer es transformar la siguiente expresión:

Código SQL:
Ver original
  1. WHERE tabla1.campo1=valor1 AND (tabla2.campo2=valor2 OR tabla3.campo3=valor3) AND tabla4.campo4=valor4


Pues no encuentro cómo combinar el resultado del OR entre paréntesis con los AND que están fuera.

Me puedan ayudar con esto por favor? será que se puede hacer?.

Gracias desde ya
  #2 (permalink)  
Antiguo 28/02/2013, 09:37
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 16 años, 3 meses
Puntos: 87
Respuesta: combinar OR con AND en active record

Hola,

Para hacer eso tendrías que poner la cadena directamente:

Código PHP:
Ver original
  1. $where = "tabla1.campo1=valor1 AND (tabla2.campo2=valor2 OR tabla3.campo3=valor3) AND tabla4.campo4=valor4";
  2.  
  3. $this->db->where($where);

Saludos!
  #3 (permalink)  
Antiguo 28/02/2013, 14:15
 
Fecha de Ingreso: diciembre-2006
Mensajes: 213
Antigüedad: 17 años, 11 meses
Puntos: 3
[SOLUCIONADO]Respuesta: combinar OR con AND en active record

Hola quike88,

Gracias por responder, sé que ese ejemplo está en la documentación oficial y ya lo probé pero no me funcionó, al final lo solventé haciendo lo siguiente:

Código SQL:
Ver original
  1. $query = $this->db->where_in($campo,$array_condiciones_OR);
  2. $query = $this->db->WHERE($array2_condiciones_AND);

Talvez sean por las versiones de CI, de momento no recuerdo cuál es la que estoy ocupando pero al final teminaré actualizando.

Gracias por la respuesta.

Saludos

Etiquetas: combinar, record
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:00.