Consulta sql codeigniter desde php

  • Autor Autor xaiborweb
  • Fecha de inicio Fecha de inicio
xaiborweb

xaiborweb

Programador
No recomendado
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
hola compañeros de forobeta, tengo la siguiente consulta sql desde php

PHP:
if($lang == 'en'){
			return $this->db
			->select('episodes.id,episode_number,episodes.poster,season_number,episodes.air_date,episodes.title,episodes.audio,episodes.calidad')
			->from('episodes')
			->join('seasons','episodes.id_season=seasons.id')
			->where('episodes.id_tvshow',$id)
			->order_by('air_date','DESC')
			->limit(3)
			->get()->result();
		}else{
			return $this->db
			->select('episodes.id,episode_number,episodes.poster,season_number,episodes.air_date,episodes.title,episodes_'.$lang.'.title,episodes_'.$lang.'.calidad,episodes_'.$lang.'.audio')
			->from('episodes')
			->join('seasons','episodes.id_season=seasons.id')
			->join('episodes_'.$lang.'','episodes.id=episodes_'.$lang.'.id_episode')
			->where('episodes.id_tvshow',$id)
			->order_by('air_date','DESC')
			->limit(3)
			->get()->result();
		}

a la cual deseo a where('episodes.id_tvshow',$id) agregarle and audio IS NOT NULL pero no se como hacerlo para la estructura que compartí, les agradezco cualquier ayuda gracias.
 
Última edición:
Y si agregas está linea

where('audio IS NOT NULL', null, false)
 
Y si agregas está linea

where('audio IS NOT NULL', null, false)

pero ya tiene un where este
where('episodes.id_tvshow',$id)

entonces como le agrego a ese where el and audio IS NOT NULL, gracia por responder 😉
 
Según la documentación si llama dos where seguidos , le agrega el AND.

https://www.codeigniter.com/userguide3/database/query_builder.html

Cita:
If you use multiple function calls they will be chained together with AND between them:

$this->db->where('name', $name); $this->db->where('title', $title); $this->db->where('status', $status); // WHERE name = 'Joe' AND title
 
Y si agregas está linea

where('audio IS NOT NULL', null, false)

No hay problema en volver a agregar otro where, es como si le agregaras un AND :encouragement:
 
Según la documentación si llama dos where seguidos , le agrega el AND.

https://www.codeigniter.com/userguide3/database/query_builder.html

Cita:
If you use multiple function calls they will be chained together with AND between them:

$this->db->where('name', $name); $this->db->where('title', $title); $this->db->where('status', $status); // WHERE name = 'Joe' AND title

hola gracias por responder pues lo agregue asi

->where('episodes.id_tvshow',$id)
->where('episodes.audio','1en')

y si me funciono pero yo necesito es ponerle NOT NULL cuando lo hago así
->where('episodes.audio','NOT NULL') entonces no me devuelve nada
->where('episodes.audio',NOT NULL) me devuelve este error https://gyazo.com/c3291a06ea6a0a6c116882271f1d36e0

gracias por tu ayuda te doy like

- - - Actualizado - - -

No hay problema en volver a agregar otro where, es como si le agregaras un AND :encouragement:

el problema es como le meto el and a esto

where('episodes.id_tvshow',$id)
 
where('episodes.id_tvshow',$id)->where('episodes.audio is not null', null, false);

El que te tira error es porque metes palabras reservadas,
->where('episodes.audio',NOT NULL)
, el otro te devuelve vacio porque es como si evaluaras Where episodes.audio = not null
 
where('episodes.id_tvshow',$id)->where('episodes.audio is not null', null, false);

El que te tira error es porque metes palabras reservadas,
, el otro te devuelve vacio porque es como si evaluaras Where episodes.audio = not null

gracia por comentar pero como tu lo compartiste entonces no se cumple el not null por que si me muestra resultados null para la columna audio

hasta el momento solo me a funcionado asi
->where('episodes.id_tvshow',$id)
->where('episodes.audio','1en')

pero en audio son mas de 20 diferentes y por eso necesito not null por que me queda mas fácil.

- - - Actualizado - - -

una ayudita [MENTION=9679]cicklow[/MENTION] 😉

no encuentro como incluir audio IS NOT NULL en where('episodes.id_tvshow',$id)

esto es lo mas cerca que e llegado
->where('episodes.id_tvshow',$id)
->where('episodes.audio','1en')

- - - Actualizado - - -

nunca pude solucionarlo con el IS NOT NULL

la solución que yo encontré fue:

PHP:
$onlycalidad = array('2hd', '4rip', '5dvd');
->where_in('episodes.calidad', $onlycalidad)

aunque me surge la siguiente duda, esta petición seria mas pesada por que tiene que comprar? una petición con columna IS NOT NULL es mucho mas liviana y rápida ?
 
Atrás
Arriba