Foros del Web » Programando para Internet » PHP »

Consulta en una BD con un campo variable

Estas en el tema de Consulta en una BD con un campo variable en el foro de PHP en Foros del Web. Hola, sé que el título no es muy ilustrativo, pero no se me ocurría otra forma de ponerlo. Estoy trabajando con php haciendo una consulta ...
  #1 (permalink)  
Antiguo 17/05/2011, 08:54
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Consulta en una BD con un campo variable

Hola, sé que el título no es muy ilustrativo, pero no se me ocurría otra forma de ponerlo.

Estoy trabajando con php haciendo una consulta en una base de datos.

Quiero seleccionar una serie de usuarios de una tabla que contiene un id_user y un id_libro, hasta ahí todo fácil, el problema es que la consulta tiene un campo variable, puesto que los user deben tener alguno de los id_libro que se le pasen como entrada a una función, y no sólo un id_libro.

Sé que será algo del estilo


$sql1 ="SELECT id_user FROM usuario_libro WHERE id_libro = $array_libros[0] OR id_libro = $array_libros[1]" ;

$r=mysql_query($sql1);

Así sería muy sencillo si supiéramos de antemano cuántos libros son, pero en realidad el array_libros no sabemos de qué longitud es, y es lo que se le pasa como parámetro de entrada a la función que realiza la consulta.

Imagino que será con algún tipo de bucle for(i=0;i<long_array; i++) y un select dentro, pero no sé muy bien cómo hacerlo.



Gracias de antemano
  #2 (permalink)  
Antiguo 17/05/2011, 08:59
 
Fecha de Ingreso: diciembre-2010
Mensajes: 24
Antigüedad: 13 años, 4 meses
Puntos: 1
Respuesta: Consulta en una BD con un campo variable

Código PHP:
$sql1 ="SELECT id_user FROM usuario_libro WHERE"

for(
$i=0;$i<count($array_libros);$i++){

    if(
$i==0){
        
$sql1.=" id_libro=$array_libros[$i]";
    }else{
    
        
$sql1.=" OR id_libro=$array_libros[$i]"
    
}


}


//Aquí ya tendrás en $sql1 la consulta que quieres lanzar. 
  #3 (permalink)  
Antiguo 17/05/2011, 09:06
Avatar de rodno  
Fecha de Ingreso: enero-2009
Ubicación: En algun lugar de Cuba
Mensajes: 426
Antigüedad: 15 años, 3 meses
Puntos: 43
Respuesta: Consulta en una BD con un campo variable

hola, lo pudieras hacer de la siguiente forma

Select campos From tabla where id_libro in (1,2,3,5)

saludos
__________________
"No te preocupes si no funciona bien. Si todo lo hiciera, no tendrías trabajo."
"El problema no es no saber, sino no saber quién sabe"
..::Con Karma se piensa mejor::..
  #4 (permalink)  
Antiguo 17/05/2011, 09:53
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Consulta en una BD con un campo variable

Pero el problema sigue sin poder resolverse, perdón si no me he explicado muy bien, aunque en el ejemplo ponga que el array contiene sólo 2 id libro, la siguiente vez que ejecute esa consulta, puede que el campo contenga 5 id de libro, y tenga que filtrar a los usuarios que tengan esos 5 libros.

En realidad no sé si hay una forma directa de hacerlo o es demasiado complejo.

Gracias
  #5 (permalink)  
Antiguo 17/05/2011, 11:09
 
Fecha de Ingreso: febrero-2010
Mensajes: 295
Antigüedad: 14 años, 2 meses
Puntos: 58
Respuesta: Consulta en una BD con un campo variable

Hola Mirry.

Prueba con esto, a ver:

Código PHP:
$id_libro implode("' OR id_libro='"$array_libros);

$sql="SELECT id_user FROM usuario_libro WHERE id_libro='".$id_libro."'"
  #6 (permalink)  
Antiguo 17/05/2011, 11:20
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Consulta en una BD con un campo variable

Había entendido mal tu respuesta, javifranco, ahora la probaré, y también la tuya Nexus10, ahora os digo.


Muchas gracias
  #7 (permalink)  
Antiguo 17/05/2011, 14:58
 
Fecha de Ingreso: enero-2008
Mensajes: 9
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Consulta en una BD con un campo variable

Perfecto, con el primer trozo de código funciona!

muchas gracias a todos
  #8 (permalink)  
Antiguo 17/05/2011, 15:02
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Respuesta: Consulta en una BD con un campo variable

Hola a todos

Perdon pero como que ando medio perdido en el tema del foro

He instalado PDO para usar firebird 1.5 , pero al querer lanzar una consulta sale un error de PDO:Statement

Podrian indicarme donde puede revisar o que hacer para saber si esta bien instalado mi driver PDO + firebird

Mil disculpas

Etiquetas: bd, variables, campos
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 18:01.