Foros del Web » Programando para Internet » PHP »

select anidado

Estas en el tema de select anidado en el foro de PHP en Foros del Web. Hola a todos! esta semana estoy practicando a fondo con php y mysql (manual en mano, claro), pero estoy encontrándome con dudas: como por ejemplo ...
  #1 (permalink)  
Antiguo 11/09/2010, 12:08
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 9 meses
Puntos: 9
select anidado

Hola a todos! esta semana estoy practicando a fondo con php y mysql (manual en mano, claro), pero estoy encontrándome con dudas: como por ejemplo este select anidado que no logro resolver. Si me pudiérais echar una mano os lo agradecería.

Esto es parte del code:

Código PHP:
$buscar "SELECT * FROM libros $buscar ";
$result mysql_query($buscar) or die("La siguiente consulta contiene algún error:<br>nSQL: <b>$sql</b>");
$buscar2 "SELECT * FROM libros WHERE titulo LIKE '%$mar%' IN ($buscar)";
$result2 mysql_query($buscar2) or die("La siguiente consulta contiene algún error:<br>nSQL: <b>$sql</b>"); 
la querycon $buscar y $result funciona, la otra no, claro, este es el code completo:

Código PHP:
$buscar "SELECT * FROM libros $buscar ";
$result mysql_query($buscar) or die("La siguiente consulta contiene algún error:<br>nSQL: <b>$sql</b>");
$buscar2 "SELECT * FROM libros WHERE titulo LIKE '%$mar%' IN ($buscar)";
$result2 mysql_query($buscar2) or die("La siguiente consulta contiene algún error:<br>nSQL: <b>$sql</b>");
// salida query
echo $buscar."<p>";
echo 
$buscar2."<p>";

//echo $buscar;


if (!$result){ 
echo 
"error primero"."<p>";
}elseif (!
mysql_num_rows($result)){ 
echo 
"error segundo";

}elseif(
mysql_num_rows($result)){ 
while (
$row mysql_fetch_array ($result)) {    

echo 
$row['autor']."<p>";  
echo 
$row['titulo']."<p>"
echo 
$row['tema']."<p>"."<p>"
}

}

      elseif(
mysql_num_rows($result2)){
           while (
$row mysql_fetch_array ($result2)) {    

echo 
$row['autor']."<p>";  
echo 
$row['titulo']."<p>"
echo 
$row['tema']."<p>"."<p>"; }}} 
  #2 (permalink)  
Antiguo 11/09/2010, 15:41
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: select anidado

Hola
que error te da?
yo creería que es por la estructura de la consulta, intenta cambiandola por esto

Código MySQL:
Ver original
  1. SELECT * FROM libros WHERE titulo LIKE '%$mar%' OR titulo IN ($buscar)

es decir, lo que se busca es averiguar titulos de libros que contengan lo que tiene $mar o $buscar, correcto?
uhm, bueno, no se si será mejor usar OR o AND, prueba con ambas
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #3 (permalink)  
Antiguo 12/09/2010, 05:52
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 9 meses
Puntos: 9
Respuesta: select anidado

Solucionado!

Código SQL:
Ver original
  1. SELECT titulo FROM `libros` WHERE `autor` LIKE '%barral%' AND `titulo`
  2.   = (SELECT `titulo` FROM `libros` WHERE `titulo`  LIKE '%mediterraneo%')

Última edición por charlyta; 12/09/2010 a las 10:58

Etiquetas: select, anidados
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 21:59.