Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda en buscador avanzadado!!

Estas en el tema de Ayuda en buscador avanzadado!! en el foro de Bases de Datos General en Foros del Web. Hola, intento hacer un buscador de 12 campos, Nombre de una pelicula i informacion sobre esta (Autor, actores, guionistas, etz..) El problema lo tengo en ...
  #1 (permalink)  
Antiguo 04/07/2005, 04:35
 
Fecha de Ingreso: junio-2005
Mensajes: 30
Antigüedad: 19 años, 5 meses
Puntos: 0
Ayuda en buscador avanzadado!!

Hola, intento hacer un buscador de 12 campos, Nombre de una pelicula i informacion sobre esta (Autor, actores, guionistas, etz..)

El problema lo tengo en que al buscar una pelicula si no se pone nada en los capos donde puede haver mas de una respuesta como en actores, abtengo mas de una respuesta a mi consulta (tantas como actores haya).

Ya que al poner por ejemplo Kill bill en nombre de pelicula y dejo el campo actores vacio,obtengo que Kill bill corresponde a la id=1000 y al relacionar esta con sus actores me salen 3, por ejemplo id=13, 25, 50 y por ello envez de obtener una sola respuesta obtengo 3.

Como puedo limitar que solo me salga una respuesta?
El buscador esta en: http://www.taconline.net/buscadorcine.php

El cogido de la busqueda es:
SELECT Comun.id_comun, Comun.Nombre as programa, Comun.Fotografia, Comun.Valoracion, Comun.Tipo, Comun.Resumen, Comun.Comentario, Comun_Pelicula.id_comun, r_cine_genero.id_comun, r_cine_genero.id_genero_cine, r_cine_director.id_comun, r_cine_director.id_director, r_cine_interprete.id_interprete, r_cine_interprete.id_comun, r_cine_guionista.id_comun, r_cine_guionista.id_guionista,Guionista.Nombre,Gui onista.id_guionista FROM Comun, Comun_Pelicula, r_cine_genero, r_cine_director, r_cine_interprete,Interprete_Cine, r_cine_guionista, Guionista
WHERE (Comun.Nombre LIKE '%$busqueda%')&&(Comun.Resumen LIKE '%$resumen%')&&(Comun.Comentario LIKE '%$comentario%')&&(Comun.id_comun=Comun_Pelicula.i d_comun)&&(Comun_Pelicula.texto_cineforum LIKE '%$comentario_cineforum%')&&(Comun.id_comun=r_cine _genero.id_comun)&&(r_cine_genero.id_genero_cine LIKE '%$genero%') &&(Comun.id_comun=r_cine_director.id_comun)&&(r_ci ne_director.id_director LIKE '%$director%') &&(Comun.id_comun=r_cine_interprete.id_comun)&&(r_ cine_interprete.id_interprete=Interprete_Cine.i d_interprete)&&( Interprete_Cine.Nombre LIKE '%$interprete%')&&
(Comun.id_comun=r_cine_guionista.id_comun)&&(r_cin e_guionista.id_guionista=Guionista.id_guioni sta)&&( Guionista.Nombre LIKE '%$guionista%')
  #2 (permalink)  
Antiguo 04/07/2005, 07:44
 
Fecha de Ingreso: junio-2004
Mensajes: 92
Antigüedad: 20 años, 5 meses
Puntos: 0
pues si estoy entendiendo bien el problema, no podras lograr que aparezcan los 3 actores en una misma fila... deberias obtenerlos en otra consulta o bien arreglarte con los 3 resultados imprimiendo solo lo que cambia entre fila y fila.
__________________
Crea tu Sitio
  #3 (permalink)  
Antiguo 04/07/2005, 14:19
 
Fecha de Ingreso: junio-2005
Mensajes: 30
Antigüedad: 19 años, 5 meses
Puntos: 0
Lo que intento es que por ejemplo si buscas matrix aparezca una sola vez si dejas el campo director, interpretes, guionista, etc... vacio, ya que ahora si lo hago entonces me sacaría los los diversos actores y directores de la pelicula y saldria repetida la busqueda. He pensado que podria hacer que al dejar vacio un campo la sentencia sql no lo buscara, pero como hacerlo? ya que por el cuento de la vieja tendria 144 convinaciones de campos vacios y llenos.
Si teneis una sugerencia lo agradecerio por que me va a rebentar el coco :P
  #4 (permalink)  
Antiguo 05/07/2005, 03:10
 
Fecha de Ingreso: junio-2005
Mensajes: 30
Antigüedad: 19 años, 5 meses
Puntos: 0
Me han comentado este sistema:

cuando el usuario pulse el botón para buscar compruebas qué campos están cubiertos y en función de ello creas una consulta u otra:

$consulta="SELECT * FROM tabla WHERE";

if ($_POST['campo1']!="") $consulta.=" campo1 LIKE '".$_POST['campo1']."%' and ";

if ($_POST['campo2']!="") $consulta.=" campo2 LIKE '".$_POST['campo2']."%' ";

[...]


Es una forma nueva de programar y no acabo de entender muy bien su fundamento. me podriais dar un ejemplo con algunos de mis datos reales y yo ya seguire con el resto?

por ejemplo:
Cogo informacion de un campo del formulario a traves de:
HTTP_GET_VARS['general']
HTTP_GET_VARS['director'] --->este me lo pueden enviar vacio o no

la sentencia de busqueda actual que tengo es:
$query_hoytv = "SELECT Comun.id_comun, Comun.Nombre, r_cine_director.id_comun, r_cine_director.id_director, Director.id_director, Director.Nombre
FROM Comun, r_cine_director, Director
WHERE (Comun.Nombre LIKE '%$busqueda%')&&(Comun.id_comun=r_cine_director.id _comun)&&(r_cine_director.id_director=Director.id_ director) && (Director.Nombre LIKE '%$director%')";
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 23:07.