dajar vacio un condicional

30 views
Skip to first unread message

cesar barcia

unread,
Jul 16, 2015, 10:27:05 AM7/16/15
to sistemas-gestores...@googlegroups.com
Hola Gente tengo una consulta a ver si me pueden dar una mano.

estoy haciendo un buscador avanzado wen una web con codeignier. pero el tema es que no quiero que el usuario cargue todas los filtros del buscardor.. si quiere dejar alguno vacio que lo deje, pero como hago en el string de la sql para que no de error si esta vacio esa condicio?

por ejemplo tengo un filtro de tipo si lo settea no hay problema:

where
tipo = 1

pero si no lo setea como le digo a mysql que lo ignore a ese codicional?
where
tipo = ?

Hernan Cano

unread,
Jul 17, 2015, 12:42:17 AM7/17/15
to sistemas-gestores...@googlegroups.com

** en el click de "Ir a MySQL y buscar"

local M.SQL 
M.SQL = ""

if !empty( ThisForm.Cedula.Value)
   M.SQL = M.SQL + " and CEDULA =  "+transform(ThisForm.Cedula.Value)+" "  && supongamos que es numérica
endif

if !empty( ThisForm.Nombre.Value)
   M.SQL = M.SQL + " and CEDULA = '"+transform(ThisForm.Nombre.Value)+"'"  && supongamos que es alfanumérica
endif

if !empty( ThisForm.CARGO.Value)
   M.SQL = M.SQL + " and CARGO  = '"+transform(ThisForm.CARGO .Value)+"'"  && supongamos que es alfanumérica
endif  

if !empty( ThisForm.SALARIOINI.Value)
   M.SQL = M.SQL + " and SALARIO >= "+transform(ThisForm.SALARIOINI.Value)+" "  && supongamos que es numérica
endif  
if !empty( ThisForm.SALARIOFIN.Value)
   M.SQL = M.SQL + " and SALARIO <= "+transform(ThisForm.SALARIOFIN.Value)+" "  && 
endif  

if !empty( M.SQL)
   M.SQL = substr(M.SQL,5)
endif  

M.Respuesta = SQLEXEC ( M.nHandle, M.SQL ) &&&...etc....

&&&...etc.... el resto es como lo sabes....

cesar barcia

unread,
Jul 17, 2015, 7:33:08 PM7/17/15
to sistemas-gestores...@googlegroups.com
Gracias por esa forma, pasa que tengo mi sql en un string dentro de una variable en el script php 

hay alguna forma por ejemplo similar a esto?

$sql = "select * from tabla where (nombre = 'algo' or nombre = '') and ... ";

Gracias Gente

--
Has recibido este mensaje porque estás suscrito al grupo "Sistemas Gestores de Bases de Datos" de Grupos de Google.
Visita este grupo en http://groups.google.com/group/sistemas-gestores-de-bases-de-datos.

Hernan Cano

unread,
Jul 17, 2015, 11:02:04 PM7/17/15
to sistemas-gestores...@googlegroups.com
Llavería:

Si usted es programador, hubiera entendido que lo que yo escribí significa en palabras lo sgte:

- Cuando una de las condiciones sí tenga valor, entonces en el IF se le concatena a la vble que se va llenando según las propiedades que sí tengan valor.

- Si la condición no tiene valor, entonces no se concatena a la vble.

Esa vble es la que se agrega al $SQL final.

cesar barcia

unread,
Jul 17, 2015, 11:43:45 PM7/17/15
to sistemas-gestores...@googlegroups.com
Hernan gracias por responder quedate tranquilo que se que ess lo que hace una sentencia if... pero justamente quiero evitar condicionales dentro de la sql quiero saber si mysql como mostre en el ejemplo tiene alguna alternativa de interpretar si tiene que comprobar segun algun campo o lo tiene que pasar por alto...

--
Reply all
Reply to author
Forward
0 new messages