Foros del Web » Programando para Internet » PHP »

ayuda con buscador multiple campos

Estas en el tema de ayuda con buscador multiple campos en el foro de PHP en Foros del Web. hola amig@s. estoy trabajando en mi tesis final de la facultad y debo presentar un sitio web de un video club con un buscador mas-o-menos ...
  #1 (permalink)  
Antiguo 12/03/2010, 09:07
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
ayuda con buscador multiple campos

hola amig@s. estoy trabajando en mi tesis final de la facultad y debo presentar un sitio web de un video club con un buscador mas-o-menos avanzado... la base de datos mysql contiene las peliculas y los datos sobre cada pelicula (actor, director, genero, etc...)

les dejo mi codigo para que le hechen un vistazo. necesito mucha ayuda. la pagina 1 tiene el buscador con 3 campos... (buscar por actor/buscar por genero de pelicula=este campo es un drop-down/buscar por estreno/regular/clasica=este campo tambien es drop-down)... y pagina 2 muestra los resultados...

Código:
<td width="44%"><form id="form3" name="form3" method="post" action="test_resultados_avanzados.php">
                          <table width="100%" border="0" align="center" bordercolor="#FFFFFF">
                            <tr>
                              <td width="50%"><div align="left">Buscar por interpretes:</div></td>
                              <td width="50%"><div align="right">
                                <input name="interprete" type="text" id="interprete" />
                              </div></td>
                            </tr>
                            <tr>
                              <td><div align="left">
                                <div align="left">Buscar por género de pelicula:</div>
                              </div></td>
                              <td><div align="right">
                                <select name="genero" size="1" id="genero">
                                  <option value="TODAS" selected="selected">TODAS</option>
                                  <option value="Accion">Accion</option>
                                  <option value="Animacion">Animacion</option>
                                  <option value="Drama">Drama</option>
                                  <option value="Comedia">Comedia</option>
                                  <option value="Fantasia">Fantasia</option>
                                  <option value="Romantica">Romantica</option>
                                  <option value="Terror">Terror</option>
                                </select>
                              </div></td>
                            </tr>
                            <tr>
                              <td><div align="left">Buscar por novedad:</div></td>
                              <td><div align="right">
                                <select name="novedad" size="1" id="novedad">
                                  <option value="TODAS" selected="selected">TODAS</option>
                                  <option value="Clasica">Clasica</option>
                                  <option value="Regular">Regular</option>
                                  <option value="Estreno">Estreno</option>
                                </select>
                              </div></td>
                            </tr>
                          </table>
                          <div align="center">
                            <input type="submit" name="boton2" id="boton2" value="BUSCAR" />
                            </div>
                        </form>                        </td>


esta es la tabla de busqueda que esta en la pagina 1...

y a la pagina 2 tiene el resultado, este es el codigo que tengo en php:

Código:
$interpre= $_POST['interprete'];

$gener= $_POST['genero'];

$noved= $_POST['novedad'];

$interpre_recordser1 = "-1";
if (isset($_POST['interprete'])) {
  $interpre = $_POST['interprete'];
}

$gener_recordser1 = "-1";
if (isset($_POST['genero'])) {
  $gener = $_POST['genero'];
}

$noved_recordser1 = "-1";
if (isset($_POST['novedad'])) {
  $noved = $_POST['novedad'];
}


mysql_select_db($database_starvideo, $starvideo);

$query_Recordset1 = "SELECT * FROM peliculas WHERE Interprete1 LIKE '%$interpre%'
   and (Categoria LIKE '%$gener%')
   and (Tipo LIKE '%$noved')";

$Recordset1 = mysql_query($query_Recordset1, $starvideo) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>


creo que el problema esta en la la ultima parte donde dice "SELECT * FROM" etc... algo ahi no funciona. cuando intento bucsar por solo 1 campo, funciona bien, pero al agregar el "AND" codigo, ya deja de funcionar por completo :(

por favor amig@s, el lunes presento el proyecto y es lo unico que me falta y me recibo :) gracias! :)
  #2 (permalink)  
Antiguo 12/03/2010, 09:11
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: ayuda con buscador multiple campos

Yo q tu mejor hago un índice FULL TEXT en la BD, aclarará muchas de tus consultas.
Ya q es tu tesis final, espero q al final tb limpies los datos y demás rutinas de seguridad. Me refiero a los datos provenientes del Form
En fin, respecto a tu duda creo q es mejor q hagas un full text de los campos q tienes
  #3 (permalink)  
Antiguo 12/03/2010, 09:33
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

voy a investigar un poco de los de full text, pero ya a esta etapa del proyecto, me gustaria modificarlo lo menos posible.
  #4 (permalink)  
Antiguo 12/03/2010, 09:41
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

me leí esta guia. al parecer necesitaria modificar mucho la tabla donde se encuentra el formulario y tambien el php de la pagina 2 (resultado).

no hay manera de corregir el codigo que tengo ahora para que busque bien? de otras manera tendria que utilizar el full text, que la verdad quiero evitar tanto cambios ya que estoy cansado de corregir y empezar de 0 haha.
  #5 (permalink)  
Antiguo 12/03/2010, 09:54
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: ayuda con buscador multiple campos

No tienes que modificar tanto, te tomará solo 10 minutos, pero bueno.
CREO q cómo lo tienes, debe coincidir los 3 campos. ¿es eso?
Bueno ¿se cumple siempre?
  #6 (permalink)  
Antiguo 12/03/2010, 10:05
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

aaa quiza lo intento entonces si no toma tanto tiempo. pero igual voy a investigarlo mejor.
leí este articulo nomas: http://es.debugmodeon.com/articulo/indices-full-text-en-mysql

como lo tengo ahora me funciona bien creo que el problema en realidad se encuentra en los 2 campos drop-down...

tengo una valor que es ¨TODOS¨ en el campo genero y tambien en el campo tipo de pelicula...

ahora, en la pagina de resultados, no tengo un codigo para que, al dejar el drop-down campo seleccionado en la opcion ¨TODOS¨... quiero que ignore ese filtro. que no busque nada dentro de ahi...

se entiende?? esta dificil explicarlo por este medio.
  #7 (permalink)  
Antiguo 12/03/2010, 10:11
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

si, ahora recuerdo correctamente, el problema se encontraba ahi. necesitaria que al seleccionar las opciones ¨TODAS¨ en la busqueda... que no se busque por ese filtro en la base de datos... osea, que busque en los otros campos nomas...

hacer eso en el campo de ¨buscar por actores¨ fue facil porque lo convertis en -1
Código:
$interpre_recordser1 = "-1";
if (isset($_POST['interprete'])) {
  $interpre = $_POST['interprete'];
}


pero no logro que al seleccionar ¨TODAS,¨ que se ignore la busqueda por ese campo... quizas ahi esta un poco mas claro.
  #8 (permalink)  
Antiguo 12/03/2010, 10:22
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

aqui hay una foto para que tengan idea a que me refiero por la opcion ¨TODAS¨ en los campos genero y novedad. los valores son en genero: todas, accion, fantasia, comedia, terror, etc... y en novedad son: todas, estrenos, regular, clasica...

  #9 (permalink)  
Antiguo 12/03/2010, 10:32
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: ayuda con buscador multiple campos

Creo que con include se solución mas rápido, es decir, si no tienes seteados los filtros, incluyes un buscador simple y si tienes seteados uno u otro, incluyes un buscador avanzado, esa es mi lógica con respecto al sistema de almacén que tengo.

Ahora si estas estudiando programación web, date tu tiempo y presenta algo bonito, no solamente que funcione sino que sea coherente y "bonito".

Otra cosa mas, que es lo que queires hacer, quizas me anime y te apoye mas, hace tiempo no toco codigo...
  #10 (permalink)  
Antiguo 13/03/2010, 09:59
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

estudio diseño multimedia. no importa que se vea ¨bonito¨ el codigo, solo que funicone. todavia no intente solucionarle ensima.

que bajon esto. nose porque no anda bien.
  #11 (permalink)  
Antiguo 13/03/2010, 10:05
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: ayuda con buscador multiple campos

Bueno, con los campos select no funciona la tecnica de isset(), porque siempre va a enviar un valor, una alternativa puede ser ponerle a la opcion de "TODOS" un valor vacio, y en el codigo php en lugar de verificar si existe, verificar si esta vacio
  #12 (permalink)  
Antiguo 14/03/2010, 19:16
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

le heche una leida a tu link dark pero la verdad se me esta complicando un poco entender esos codigos. probe un poco pero no sale nade.

simplemente necesito que al dejar seleccionado la opcion select "TODAS" en "buscar por genero" y en "buscar por novedad," necesito que la busqueda ignore esos filtros en la busqueda misma.

quiza ayuda que en dreamweaver lo deje en vacio al valor del select "TODAS".. mientras que por ejemplo el item label "ACCION" tiene el valor "ACCION." "DRAMA" y "DRAMA" etc... y funciona perfecto cuando selecciono uno de esos select en la prueba de la busqueda.

tambien intente en "TODAS" ponerle el valor "var $var" para probar nomas e incluir este codigo en la pagina de resultado:

Código:
$var = 0;

// Evaluates to true because $var is empty
if (empty($var)) {
    echo '$var is either 0, empty, or not set at all';
}

// Evaluates as true because $var is set
if (isset($var)) {
    echo '$var is set even though it is empty';
}

pero no me anda bien ahi por la parte que dice $var is either 0, empty.. etc que me aparece en forma de text arriba del sitio :S

sigo intentando ya que mañana es la entrega final!!! pero por favor si alguien sabe, denme una ultima mano asi me recibo :)
  #13 (permalink)  
Antiguo 14/03/2010, 21:40
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

estaba probando un poco con hacer el select list/menu dynamico y me funciono! el unico problema es que al desplegar el list/menu aparecen muchas veces la misma categoria :S .. pero por lo menos la que dice TODAS funciona correctamente... aaaarrgggghhhh. esto tiene algo que ver con las propiedades que se eligen se me hace... porque tengo ahora:

options from recordset: recordset1 (bien)
values: puse categoria (que es donde tengo la informacion sobre generos de pelis-accion,drama,comedia,etc...)
labels: puse categoria denuevo (esta cuando la cambio por otro filtro, es lo que aparece muchas veces en el select list/menu)...

no hay forma que solo aparescan 1 vez cada filtro? envez de que me aparezca asi:
.TODAS
.accion
.drama
.comedia
.accion
.accion
.drama
.accion
.drama
.drama
.comedia

etc... (es un ejemplo)
  #14 (permalink)  
Antiguo 14/03/2010, 22:13
 
Fecha de Ingreso: febrero-2010
Mensajes: 10
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: ayuda con buscador multiple campos

olvidenlo, ya lo solucione y me anda perfecto :)

le meti el codigo al formulario en la lista/menu solamente a la seleccion que permite buscar todos los resolutados:
Código:
<option value="" selected="selected" <?php if (!(strcmp("", $row_Recordset1['Categoria']))) {echo "selected=\"selected\"";} ?>>TODAS</option>

por si le sirve a alguien lo dejo. se cierra este asunto :) que groso termine.

Etiquetas: dreamweaver, múltiple, mysql, buscadores, formulario, 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 00:32.