Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/02/2014, 12:17
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: problemas con select.

Para hacer la búsqueda con el operador LIKE de MySQL y la función sprintf de PHP, el especificador de tipo debe ser escrito de la siguiente manera:

Código PHP:
Ver original
  1. sprintf("SELECT * FROM tabla WHERE campo LIKE '%%%s%%'", $variable);

Como verás, escapo los signos de porcentaje que se colocan cada vez que se utiliza este operador con otro signo de porcentaje para que no entren en conflicto con el del especificador de tipo, pues si los colocas a la derecha de la coma, es decir, en donde van las variables, ya no estarás aplicando dichos signos de porcentaje a la sentencia SQL, por eso se produce el error.

Por otro lado, esto también es incorrecto:

Código MySQL:
Ver original
  1. login.Nivel = 'SUPERVISOR,USER'

Si quieres buscar la coincidencia con alguno de ambos valores, hazlo con dos condiciones:

Código MySQL:
Ver original
  1. login.Nivel = 'SUPERVISOR' OR login.Nivel = 'USER'

O con el operador de sub-consulta IN:

Código MySQL:
Ver original
  1. login.Nivel IN ('SUPERVISOR','USER')

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand