Ver Mensaje Individual
  #10 (permalink)  
Antiguo 25/01/2010, 01:51
Avatar de dggluz
dggluz
 
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años, 7 meses
Puntos: 50
Respuesta: Ayuda seria con buscadores

Básicamente, en la página que procesa tienes dos partes:
  1. El código PHP de conexión/consulta/muestra de los resultados, que es casi genérico, de molde.
  2. El código de la consulta SQL; es aquí en donde tienes que indicar exactamente qué quieres, y dependerá de cómo tengas armadas las tablas.
Suponiendo que tengas una tabla para región, con un id_region; una para la empresa, con un id_empresa; una para la sucursal, con un id_sucursal; y una para los funcionarios, que tenga el nombre de los funcionarios, un id_funcionario y los ids de la región, la empresa y la sucursal, entonces en la consulta no tendrías que preocuparte más que por la última tabla, ya que podrías trabajar con los ids. Supongamos que el usuario quiere poder elegir si usar o no esos "filtros" (los selects de los que hablas), entonces sería muy práctico que los selects tengan todas las opciones con id y descripción, y una opción extra que sirva para no usar ese filtro en particular. Esta opción extra puede tener id=0 dado que si los ids de las tablas son autoincrementables (deberían serlo), empezarían a partir de 1. Bien, entonces para la página del formulario tendrías que leer las tablas de tu BD para poder armar los selects. En la página que procesa, la única parte "peliaguda" es armar la consulta SQL. Para eso puedes hacer lo siguiente:
Código PHP:
$sql="SELECT * FROM funcionarios WHERE nombre_funcionario LIKE '%".$_POST['funcionario']."%'";
if(
$_POST['region']!=0)
{
    
$sql.=" AND id_region=".$_POST['region'];
}
if(
$_POST['empresa']!=0)
{
    
$sql.=" AND id_empresa=".$_POST['empresa'];
}
if(
$_POST['sucursal']!=0)
{
    
$sql.=" AND id_sucursal=".$_POST['sucursal'];
}
$sql.=";"
Con eso estarás agregando las condiciones que seleccionan los usuarios, sólo si éstos las seleccionan. Como ya tienes una condición inicial, los AND pueden agregarse uno atrás del otro, sin miedo de que la consulta quede mal sintácticamente. En los casos en que no hay una condición que vaya siempre, yo suelo agregar como condición "1=1", que como es una tautología, valida siempre, lo cual es útil para concatenar ANDs. Se me hizo un poco larga la explicación, espero que haya quedado claro. ¡Suerte!

PD: ¡un poco más de autoestima amigo!, estoy seguro de que si eres capaz de hacer y entender el buscador, sólo debes tener un poco más de paciencia.