Comunidad de diseño web y desarrollo en internet online

duda con buscador en PHP

Citar            
MensajeEscrito el 02 Nov 2011 02:36 am
Buenas.
resulta que en una página que voy desarrollando tengo que hacer un buscador pero hay 9 opciones para buscar:

código-marca-modelo-color-responsable-estado(es un select con las opciones:buen estado-defectuoso-inactivo-reparación) y departamento(select con opciones: taller-recepción)

ahora bien, el usuario me ha dicho que bien puede seleccionar una opción o dos o tres o todas !!! es decir, buscar según estos criterios:

solo por código
por código y marca
por código, marca y estado
por marca y departamento
y así puede hacer las combinaciones de búsqueda que desee.

lo que hago ahorita es crear un if para cada opción pero llevo 25 selecciones de búsqueda y no parece acabar, osea, pongo esto:

/// buscando por serial, código, marca, modelo, responsable y electrica-sin estado

if ((trim($_POST['bserial']) != "") and (trim($_POST['bcodigo']) != "") and (trim($_POST['bmarca']) != "") and (trim($_POST['bmodelo']) != "") and (trim($_POST['bresponsable']) != "") and (($_POST['bestado'])=="obsoleto") and (($_POST['bdepartamento'])=="electronica")){
$msg= "buscando por serial, codigoUCA, marca, modelo y electrica";
/// y aquí iría la sentencia SQL que me realizaría la búsqueda
}


de esos IF ya llevo 25 y quisiera saber si hay alguna forma de captar esos criterios de búsqueda pues la pagina me esta creciendo demasiado y de veras no creo que esa sea la manera optima de hacerlo .

Por pabletoreto

11 de clabLevel



Genero:Masculino  

Software Developer

chrome
Citar            
MensajeEscrito el 02 Nov 2011 12:14 pm
No, no lo es.
Simplemente ve concatenando las condiciones del WHERE según los valores de los $_POST. Por ejemplo:

Código PHP :

if (trim($_POST['bserial]) != "") { $sql .= " AND `bserial` LIKE '".mysql_real_escape_string($_POST['bserial])."%' "; }


Así con todas las condiciones que tengas.
Finalmente puedes formar el WHERE de la consulta SQL.

Por DriverOp

Claber

2510 de clabLevel



 

opera

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.