Ver Mensaje Individual
  #7 (permalink)  
Antiguo 17/06/2014, 20:40
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Sentencia sql "like" en php

Lo que propone @gnzaloyo es una solucion muy elegante, pero que tiene un pequeño detalle que es que si cambias el charset, esto afectara a todas las partes de tu sistema volviendo insensible a mayusculas ese campo en cualquier consulta, lo cual, si bien soluciona tu problema particular, puede que te genere problemas a futuro.

Aca van dos soluciones alternativas, la primera desde Mysql:
Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM x WHERE LOWER(nombre) LIKE LOWER('%$b%')",$con);

y la segunda con algo de php:

Código PHP:
Ver original
  1. $b = strtolower($b);
  2.   $sql = mysql_query("SELECT * FROM x WHERE LOWER(nombre) LIKE ('%$b%')",$con);

La primera me parece la mas viable en lo que a prolijidad respecta, y como no puede ser de otra forma, aqui van dos opciones analogas de las primeras:

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM x WHERE UPPER(nombre) LIKE UPPER('%$b%')",$con);
y
Código PHP:
Ver original
  1. $b = strtoupper($b);
  2.   $sql = mysql_query("SELECT * FROM x WHERE UPPER(nombre) LIKE ('%$b%')",$con);
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios