Hola,
¿Eficencia? Arrays:
Código PHP:
$campos=array('campo1', 'campo2', 'campo3'); // nombres de los campos en el formulario, en la tabla deben llamarse igual
$condiciones=Array(); // inicializamos el array que contendra las condiciones del where
foreach ($campos as $campo) {
if (!empty($_POST[$campo])) $condiciones[]="$campo='{$_POST[$campo]}'";
}
$where=''; // inicializamos el where
if (0!=count($condiciones)) {
$where='WHERE '.implode(' AND ', $condiciones);
}
$sql="SELECT * FROM tabla $where";
$where sera cadena vacia si ninguno de los campos no estaba vacio.
Saludos.