Foros del Web » Programando para Internet » PHP »

Buscador con varias condiciones

Estas en el tema de Buscador con varias condiciones en el foro de PHP en Foros del Web. Estoy programando (intentado) un buscador con varias condiciones de búsqueda. He probado este código con una condición y funciona bien, pero en cuanto le pongo ...
  #1 (permalink)  
Antiguo 26/12/2006, 13:22
 
Fecha de Ingreso: noviembre-2006
Mensajes: 146
Antigüedad: 17 años, 5 meses
Puntos: 1
Buscador con varias condiciones

Estoy programando (intentado) un buscador con varias condiciones de búsqueda. He probado este código con una condición y funciona bien, pero en cuanto le pongo más de una me da el siguiente error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource.

He estado mirando los manuales que tengo y en el foro y no he encontrado nada que me sirva. Alguna idea?

Código PHP:
$link mysql_connect("localhost"); 
mysql_select_db("mydb"$link); 
$result mysql_query("SELECT * FROM tabla WHERE condicion1 = '$condicion1' AND 
condicion2 = '$condicion2' AND condicion3 <= '$condicion3'"
$link); 
if (
$row mysql_fetch_array($result)){ 
echo 
"<table> \n";
etc... 

Última edición por Nexus_; 26/12/2006 a las 14:08
  #2 (permalink)  
Antiguo 26/12/2006, 15:51
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Buscador con varias condiciones

Movido a PHP...

Por favor lee la Función de la sección de Base de Datos
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 26/12/2006, 17:28
Avatar de MeMiR  
Fecha de Ingreso: diciembre-2006
Ubicación: Argentina
Mensajes: 8
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Buscador con varias condiciones

Lo que haces ahi, es buscar tal cual en la base de datos. Si te dicen "pepe" va a buscar "pepe" y solo "pepe". Nunca hice uno, y no puedo ayudarte pero vi un ej. y creo que intentaba hacer asi:

SELECT * FROM tabla WHERE condicion1 = '%$condicion1%'

O algo por el estilo, busca que seguro sale.
  #4 (permalink)  
Antiguo 26/12/2006, 19:51
 
Fecha de Ingreso: noviembre-2006
Mensajes: 146
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: Buscador con varias condiciones

Es la idea. Las variables vienen de un formulario con opciones, no con campos de texto por lo que se exactamente el valor que van a tener.

He modificado el código y funciona pero ahora el problema es otro. En el formulario he añadido un area de texto para poder buscar por referencia (es un campo con auto increment). La idea es que si se sabe la referencia te de directamente todos los campos de dicha referencia sin que sea necesario completar el resto del formulario de busqueda, pero me vuelve a dar el error de antes. (las lineas de comentario son las que he quitado).

Código PHP:
$link mysql_connect("localhost"); 
mysql_select_db("db"$link);
/* if (!isset($referencia)) { */ $result mysql_query("SELECT * FROM tabla WHERE condicion1 = '$condicion1' AND condicion2 = '$condicion2' ORDER BY referencia" $link); /*} */
/* else { $result = mysql_query("SELECT * FROM tabla WHERE referencia = '$referencia'" , $link);} */
if ($row mysql_fetch_array($result)){ 
      echo 
"<table border = '1'> \n"
      echo 
"<tr> \n"
while (
$field mysql_fetch_field($result)){ 

      echo 
"</tr> \n"
do { 
        echo 
"<tr> \n"
        .......
            echo 
"</tr> \n"
      } while (
$row mysql_fetch_array($result)); 
            echo 
"</table> \n"
} else { 
echo 
"No se han encontrado coincidencias"

  #5 (permalink)  
Antiguo 27/12/2006, 01:57
 
Fecha de Ingreso: septiembre-2006
Ubicación: Argentina
Mensajes: 190
Antigüedad: 17 años, 7 meses
Puntos: 1
Re: Buscador con varias condiciones

El problema lo estas teniendo en el "do", cuando repetis los resultados. Aparte trata de usar %$condicion% y usa LIKE en vez de =

Saludos.
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 20:14.