Hola de nuevo, siguiendo en la línea de mi proyecto, ahora me he atorado en un punto. Quiero realizar una búsqueda por campos, pero aunque tenga facilitado un framework que realiza esto, no lo he entendido, así que he realizado todo el buscador desde cero.
El asunto es que quiero filtrarlo por diversos campos:
el genérico, que lea el nombre o el apellido, (o por cédula sería interesante):
y filtrado de campos por componentes (lee desde la base de datos PostgreSQL, previa llamada
Código PHP:
Ver original<?php echo "<link href='CSS/estilos.css' rel='stylesheet' type='text/css' />"; include('postgres.php');?>
:
Código PHP:
Ver original<label>Buscar por componente:
<select name="componente">
echo "<option value=\"$comp[idcomponente]\">$comp[componente]</option>";
}
?>
</select>
<br />
</label>
Y por cargo:
Código PHP:
Ver original</label>
<label>Buscar por cargo:
<select name="cargo" id="cargo">
<?php
echo "<option value=\"$cargom[idcargo]\">$cargom[cargoocupa]</option>";
}
?>
</select>
</label>
Pero quiero hacer que hayan condiciones: escojo un componente, muestra los resultados por componentes, escribo un nombre, sólo muéstrame los resultados por nombres. Ya probé y funcionan al menos dos, pero mal: si escojo un componente me rebota porque el campo texto está vacío:
Código PHP:
Ver originalfunction comprobar(){
global $errores;
if($_REQUEST['buscar'] == ""){
$errores[] = "<font color='red'>Escriba un texto</font>";
}
}
Y si filtro por nombre me los muestra aparte, pero muestra esto además:
Código PHP:
Ver original<h1>IDENTIFICACIÓN DE PERSONAL</h1>
<table border=1 cellspacing=2 bordercolor="#CC0000" align="center">
<tr>
<td>Componente</td><td>idPersona</td><td>Nombres</td><td>Apellidos</td><td>Género</td><td>Teléfono</td>
</tr>
<?php
echo "<tr>";
foreach($datos as $res){
echo "<td>",$res,"</td>";
}
echo "</tr>";
}
vacío... queda requetefeo


. Entonces, ¿hay alguna forma de filtrar por una y sólo una opción? Ya probé haciendo llamadas a funciones con, por ejemplo:
Código PHP:
Ver originalif(isset($_POST['buscar'])){ buscarPorNombre();
}
else if(isset($_POST['componente])){ buscarPorComponente();
}
pero me sale un error de "call to undefined function comprobar on (...) line 28".



Esta función está dentro de "function buscarPorNombre()", y creo que es porque no se pueden llamar funciones dentro de funciones así a secas. ¿Hay otra forma de comprobar esto, además?