Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/11/2013, 10:28
albemartinez
 
Fecha de Ingreso: mayo-2013
Mensajes: 55
Antigüedad: 10 años, 10 meses
Puntos: 1
Buscador "avanzado"

Hola.

Ando con lo de hacer un buscador, explico por partes.

Tengo una Base de datos que tiene los siguientes datos:

nombre apaterno amaterno fnac dcalle dcol cp dmpio dedo base

Tengo un formulario para la búsqueda dentro de esa base de datos:

Código HTML:
Ver original
  1. <form action="buscar.php" method="post">
  2. <tr>
  3. <h1>Buscar:</h1>
  4. </tr>
  5. <tr>
  6. <td ALIGN=CENTER>
  7. <div> Nombre: <br/>
  8. <input type="text" id="nombre" name="nombre" placeholder="Nombre"></div>
  9. </td>
  10. <td ALIGN=CENTER>
  11. <div> Apellido Paterno: <br/>
  12. <input type="text" id="apaterno" name="apaterno" placeholder="Apellido paterno"></div>
  13. </td>
  14. <td ALIGN=CENTER>
  15. <div> Apellido Materno: <br/>
  16. <input type="text" id="amaterno" name="amaterno" placeholder="Apellido materno"></div>
  17. </td>
  18. <td ALIGN=CENTER>
  19. <div> RFC: <br/>
  20. <input type="text" id="rfc" name="rfc" placeholder="RFC"></div>
  21. </td>
  22. <td ALIGN=CENTER>
  23. <div> Fecha de Nacimiento dd/mm/aaaa: <br/>
  24. <input type="text" id="fnac" name="fnac" placeholder="fecha de nacimiento dd/mm/aaaa"></div>
  25. </td>
  26. </tr>
  27. <tr>
  28. <td ALIGN=CENTER>
  29. <div> Domicilio Calle: <br/>
  30. <input type="text" id="dcalle" name="dcalle" placeholder="Dom calle"></div>
  31. </td>
  32. <td ALIGN=CENTER>
  33. <div> Colonia: <br/>
  34. <input type="text" id="dcol" name="dcol" placeholder="Colonia"></div>
  35. </td>
  36. <td ALIGN=CENTER>
  37. <div> Delegacion municipio: <br/>
  38. <input type="text" id="dmpio" name="dmpio" placeholder="Delegacion municipio"></div>
  39. </td>
  40. <td ALIGN=CENTER>
  41. <div> Estado: <br/>
  42. <input type="text" id="dedo" name="dedo" placeholder="Estado"></div>
  43. </td>
  44. <td ALIGN=CENTER>
  45. <div> Telefono: <br/>
  46. <input type="text" id="tel" name="tel" placeholder="Telefono 10 digitos"></div>
  47. </td>
  48. </tr>
  49. <input type="submit" value="buscar" name="buscar">
  50. </form>



Y el archivo para la consulta de los datos:


Código PHP:
Ver original
  1. include('conect.php');
  2.  
  3. $nom = $_POST['nombre'];
  4. $apa = $_POST['apaterno'];
  5. $ama = $_POST['amaterno'];
  6. $rfc = $_POST['rfc'];
  7. $fnac = $_POST['fnac'];
  8. $dcalle = $_POST['dcalle'];
  9. $dcol = $_POST['dcol'];
  10. $dmpio= $_POST['dmpio'];
  11. $dedo = $_POST['dedo'];
  12. $tel = $_POST['tel'];
  13.  
  14.  
  15.  
  16. if (!isset($buscar))
  17. {
  18.     if ($nom=="" && $apa=="" && $ama=="" && $rfc=="" && $fnac=="" && $dcalle=="" && $dcol=="" && $dmpio=="" && $dedo=="" && $tel==""){
  19.     echo "Debe especificar al menos un campo";
  20. }
  21. else{
  22.  
  23. $busca = "  SELECT * FROM tabla_prueba WHERE nombre LIKE '%".$nom."%'";
  24. $resultado = mysql_query($busca) or die("Error en $busca: " . mysql_error());
  25.    
  26.     echo '<table>';
  27.     while($row = mysql_fetch_array($resultado))
  28.     {
  29.        
  30.         echo '<tr>';
  31.         echo '<td>' .$row['nombre'].'</td><td>'.$row['apaterno'].'</td>';
  32.         echo '</tr>';
  33.     }
  34.         echo '</table>';
  35. }
  36. }
Bueno, puedo hacer la consulta de un campo ingresado, pero no se como hacer para:

Si ingresa un dato en cualquier campo que busque por el dato ingresado

Si ingresa un dato en un campo y otro mas en el campo siguiente que realice la busqueda en la base tomando en cuenta las coincidencias

Si escribe "martinez" en Apellido Paterno que arroje a todos los Martinez

Pero su pone "alberto" en nombre y "martinez" en Apellido que indique solo a los que en sus nombres contengan Alberto + Martinez (julio alberto martinez aguilar, alberto martinez, carlos alberto martinez casto... etc)

Y que muestre toda la fila, todos los datos que no se buscan que los muestre...

Espero explicarme correctamente, no soy programador he llegado hasta aquí de forma autodidacta. He consultado la pagina de http://dev.mysql.com/ pero igual no esta fácil entenderla jejeje...

De antemano Muchas Gracias

Habia iniciado el tema en el foro de MySQL pero me comentan que mas bien en en el foro de PHP, entonces entiendo que tendria que hacerse de la forma:


Si el campo 1 no esta vacio hacer consulta y revisar si el campo dos esta vacio y sumar la consulta y asi... algo mas menos como

Código PHP:
Ver original
  1. if(!empty(nombre)
  2. {
  3. $busca = "  SELECT * FROM tabla_prueba WHERE nombre LIKE '%".$nom."%'";
  4. $resultado = mysql_query($busca) or die("Error en $busca: " . mysql_error());
  5. }
  6. else(empty(nombre) && !empty(apellido){
  7. $busca = "  SELECT * FROM tabla_prueba WHERE apellido LIKE '%".$apa."%'";
  8. $resultado = mysql_query($busca) or die("Error en $busca: " . mysql_error());
  9. }

Y así...

¿es correcto?