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

Consulta anidada

Estas en el tema de Consulta anidada en el foro de CodeIgniter en Foros del Web. Buenas tardes, estoy intentando realizar una consulta anidada. Esta primera consulta me devuelve varios CODE y por cada uno de ellos quiero hacer otra consulta ...
  #1 (permalink)  
Antiguo 24/02/2016, 10:21
 
Fecha de Ingreso: mayo-2007
Mensajes: 44
Antigüedad: 16 años, 11 meses
Puntos: 0
Consulta anidada

Buenas tardes,

estoy intentando realizar una consulta anidada.

Esta primera consulta me devuelve varios CODE y por cada uno de ellos quiero hacer otra consulta por cada código
Cita:


$sql="SELECT DISTINCT CODE FROM descargas WHERE fecha_descarga >= ? AND fecha_descarga <= ? ";

if ($res1 = $mysqli->prepare($sql))
{

$res1 ->bind_param("ss", $fecha_ini,$fecha_fin);
$res1 ->execute();

$res1->bind_result($code);

while ($res1->fetch())
{

$sql1="SELECT tipo_fichero, idioma_fichero FROM descargas WHERE code = ".$code." AND fecha_descarga >= ? AND fecha_descarga <= ?";




if ($res2 = $mysqli->prepare($sql1))
{
$res2 ->bind_param("ss", $fecha_ini,$fecha_fin);
$res2 ->execute();


$res2->bind_result($tipo,$idioma);

}
else
{

echo "error";
}




}

Pues bien, siempre que intenta ejecutar el segundo "prepare" sale por el error.

El Sql1 lo forma bien, ya que lo ejecuto manualmente y me devuelve resultados.


Alguna idea el por que no lo ejecuta?


Saludos
  #2 (permalink)  
Antiguo 25/02/2016, 12:03
Avatar de bymorr  
Fecha de Ingreso: septiembre-2012
Mensajes: 118
Antigüedad: 11 años, 7 meses
Puntos: 9
Respuesta: Consulta anidada

Mira:
el pedazo de codigo que esta consultando | code = ".$code." | hace referencia a una variable, lo que tu tienes que hacer es utilizar el objeto que estas recibiendo en | $res1->bind_result($code); |
debería quedar algo así res1->code


Revisalo, hace un var_dump(res1), para ver como devuelve el objeto.

Etiquetas: Ninguno
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 11:51.