Ver Mensaje Individual
  #8 (permalink)  
Antiguo 19/03/2010, 14:41
dantrix
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Buscador especifico por criterios

Haber, Otra Opcion:

Tomando como ejemplo la siguiente tabla trabajadores:
codigo identificador del trabajador, DNI, unico, no null
appaterno
apmaterno
nombres
sexo
ocupacion
estudios

1) construir selects con los campos de la tabla
2) construir el formulario para que seleccione los valores
3) hacer la consulta de acuerdo a los valores seleccionados


1) select.php
Código PHP:
Ver original
  1. <!--INICIO  construccion del select con los nombres de los sexo !-->
  2.     <?php
  3.         $sql_sex = "SELECT DISTINCT `sexo` FROM `trabajadores` ORDER BY `sexo` ASC ";
  4.         $result_sex = mysql_query($sql_sex);
  5.         $options_sex = '';
  6.         while ($row_sex = mysql_fetch_array($result_sex))
  7.             {   $options_sex = $options_sex.'<option value="'.$row_sex['sexo'].'">'.$row_sex['sexo'].'</option>'; }
  8.     ?>
  9. <!--FIN  construccion del select con los nombres de los sexo !-->
  10.  
  11. <!--INICIO  construccion del select con los nombres de los ocupaciones !-->
  12.     <?php
  13.         $sql_ocu = "SELECT DISTINCT `ocupaciones` FROM `trabajadores` ORDER BY `ocupaciones` ASC ";
  14.         $result_ocu = mysql_query($sql_ocu);
  15.         $options_ocu = '';
  16.         while ($row_ocu = mysql_fetch_array($result_ocu))
  17.             {   $options_ocu = $options_ocu.'<option value="'.$row_ocu['ocupaciones'].'">'.$row_ocu['ocupaciones'].'</option>'; }
  18.     ?>
  19. <!--FIN  construccion del select con los nombres de los ocupaciones !-->
  20.  
  21. <!--INICIO  construccion del select con los nombres de los estudios !-->
  22.     <?php
  23.         $sql_est = "SELECT DISTINCT `estudios` FROM `trabajadores` ORDER BY `estudios` ASC ";
  24.         $result_est = mysql_query($sql_est);
  25.         $options_est = '';
  26.         while ($row_est = mysql_fetch_array($result_est))
  27.             {   $options_est = $options_est.'<option value="'.$row_est['estudios'].'">'.$row_est['estudios'].'</option>'; }
  28.     ?>
  29. <!--FIN  construccion del select con los nombres de los estudios!-->

2) form.php
Código PHP:
Ver original
  1. <?php require './require/select.php'; ?>
  2. <form action="./query.php" method="post" >
  3.   <?php echo '<select name="sex">'.$options_sex.'</select>'; ?>
  4.   <?php echo '<select name="est">'.$options_est.'</select>'; ?>
  5.   <?php echo '<select name="ocu">'.$options_ocu.'</select>'; ?>
  6.   <input type="submit" name="consulta" value="consultar" size="30"/>
  7. </form>

3) query.php
Código PHP:
Ver original
  1. <?php require './require/head.php'; ?>
  2. <?php require './require/conexion.php'; ?>
  3. <?php
  4.     echo "<b>para realizar una busqueda presione: Control + F </b><br />" ;
  5.     echo "<b>para imprimir el reporte presione: Control + P </b><br />" ;
  6.     echo "<br />" ;
  7.  
  8. $sex = $_POST['sex'];
  9. $est = $_POST['est'];
  10. $ocu = $_POST['ocu'];
  11. $query_trab= ("SELECT * FROM trabajadores
  12. WHERE sexo = '$sex' AND estudios = '$est' AND ocupacion = '$ocu'
  13. ORDER BY appaterno ");
  14. $trab= mysql_query($query_trab, $conexion) or die(mysql_error());
  15. $row_trab = mysql_fetch_assoc($trab);
  16. $totalRows_trab= mysql_num_rows($trab);
  17. ?>
  18. <table border="4" cellpadding="2" cellspacing="5" bgcolor="#ffffff">
  19.     <tr>
  20.       <td>Ap. Paterno</td> <td>Ap. Materno</td> <td>Nombres</td>
  21.   </tr>
  22.   <?php do { ?>
  23.     <tr>
  24.       <td><?php echo $row_trab['appaterno']; ?></td>
  25.       <td><?php echo $row_trab['apmaterno']; ?></td>
  26.       <td><?php echo $row_trab['nombres']; ?></td>
  27.  
  28.     </tr>
  29.     <?php } while ($row_trab= mysql_fetch_assoc($trab)); ?>
  30. </table><br />
  31. <table border="0" cellpadding="1" cellspacing="1">
  32.     <tr>
  33.       <td><?php echo "El total de Trabajadores es :" . $totalRows_trab ?></td>
  34.     </tr>
  35. </table>
  36. <br /><a href="/index.php">Regresar a la pagina principal</a><br /><br />
  37. </body>
  38.  
  39. </html>
  40. <?php mysql_free_result($trab); ?>
  41. <?php require './require/foot.php'; ?>


Logicamente a lo de arriba le falta un huevo de cosas, que ya le dejo por tu cuenta, pistas:
- Seguridad,
- Rendimiento
- Funciones