Foros del Web » Programando para Internet » PHP »

Búsqueda Múltiple, los resultados son siempre CERO

Estas en el tema de Búsqueda Múltiple, los resultados son siempre CERO en el foro de PHP en Foros del Web. Hola chicos, hice un pequeño buscador y cada vez que hago una búsqueda me sale 0 RESULTADOS. En la consulta puse como condición que siempre ...
  #1 (permalink)  
Antiguo 21/03/2010, 17:16
Avatar de DaphneLau  
Fecha de Ingreso: septiembre-2009
Mensajes: 46
Antigüedad: 15 años, 2 meses
Puntos: 0
Búsqueda Múltiple, los resultados son siempre CERO

Hola chicos, hice un pequeño buscador y cada vez que hago una búsqueda me sale 0 RESULTADOS.

En la consulta puse como condición que siempre coloquen el usuario y el resto de campos es opcional... les dejo un pedazo de código a ver si pueden ayudarme.

Código PHP:
Ver original
  1. $sql="SELECT * FROM alumnos WHERE usuario='".$_POST['usuario']."' ";
  2.             if(!empty($_POST['correo']))$sql.= " AND correo='".$_POST['correo']."'";
  3.             if(!empty($_POST['pais']))$sql.=" AND pais='".$_POST['pais']."'";
  4.             if(!empty($_POST['sexo']))$sql.=" AND sexo='".$_POST['sexo']."'";
  5.        
  6.  
  7.         $buscar=mysql_query($sql);

Y con esto se imprime y al final tiene que decir la cantidad encontrada.

Código PHP:
Ver original
  1. $i=0;
  2.         while($fila=mysql_fetch_array($buscar)){
  3.             if($i%2==0){
  4.                 $col='#C1E0F9';
  5.                 }else{
  6.                 $col='#E2EBF3';
  7.                 }
  8.         ?>
  9.        
  10.         </tr>
  11.             <tr bgcolor="<?php echo $col;?>">
  12.             <td><?php echo $fila['idAlumno']?></td>
  13.             <td><?php echo $fila['usuario']?></td>
  14.             <td><?php echo $fila['nombre']?></td>
  15.             <td><?php echo $fila['apellido']?></td>
  16.             <td><?php echo $fila['correo']?></td>
  17.             <td><?php echo $fila['pais']?></td>
  18.             <td><?php echo $fila['edad']?></td>
  19.             <td><?php echo $fila['sexo']?></td>
  20.             <td><?php echo $fila['tipo']?></td>
  21.             <td><?php echo $fila['numdoc']?></td>
  22.             <td><?php echo $fila['fuma'];?></td>
  23.                
  24.             </tr>
  25.         <?php
  26.             $i++;
  27.             }
  28.         ?>
  29.        
  30.         <tr bgcolor="<?php echo $col;?>">
  31.             <td colspan="11">
  32.                 <strong>Total encontrados:<?php echo mysql_num_rows($buscar);?></strong>
  33.             </td>  
  34.         </tr>

Solo funciona cuando lleno todos los campos y yo quiero que funcione al menos con uno.

Gracias!
__________________
Y ahora qué?
  #2 (permalink)  
Antiguo 21/03/2010, 19:15
 
Fecha de Ingreso: diciembre-2006
Ubicación: Peruvian
Mensajes: 142
Antigüedad: 17 años, 11 meses
Puntos: 7
Respuesta: Búsqueda Múltiple, los resultados son siempre CERO

Hola amigo lo que pasa es que lo que hiciste no es un buscador sino un simple select:
usa like de esta manera:
Código PHP:
Ver original
  1. $sql = "SELECT * FROM alumnos WHERE usuario LIKE '%".$frase."%' and correo LIKE '%".$correo."%'";
con OR o AND ependiendo de lo que necesites.
Y otra cosa.
Filtra los datos de entrada de tu formulario nunca hagas una consulta con un $_POST['usuario'] directamente filtra los datos de entrada leete algo de sql injection.
Saludos espero haberte podido ayudar
  #3 (permalink)  
Antiguo 21/03/2010, 19:59
Avatar de DaphneLau  
Fecha de Ingreso: septiembre-2009
Mensajes: 46
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Búsqueda Múltiple, los resultados son siempre CERO

Gracias Ell3r! Me acabo de dar cuenta que además tengo un problema con los IF, solo toma en cuenta la búsqueda de la última variable. Gracias, voy a leer un poco sobre lo que me recomendaste.
__________________
Y ahora qué?

Etiquetas: cero, múltiple, resultados, siempre
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:58.