Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Comparación de campos en mayúsculas o minúsculas

Estas en el tema de Comparación de campos en mayúsculas o minúsculas en el foro de Mysql en Foros del Web. Hola a todos. Lo que estoy tratando de hacer es una función que logre compararme un texto que entra por parámetro con uno que está ...
  #1 (permalink)  
Antiguo 09/02/2011, 10:10
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Comparación de campos en mayúsculas o minúsculas

Hola a todos.

Lo que estoy tratando de hacer es una función que logre compararme un texto que entra por parámetro con uno que está en una tabla de la base de datos pero que lo compare en minúsculas o mayúsculas (me da igual), en caso de encontrarlo me devuelva en un objeto toda la informacion de esa fila que coincide con la comparación.
Explico mejor en las siguientes lineas.

// esta es la funcion que tengo actualmente y no me funciona lo que quiero que haga.

public function Buscar_tipo_banco($tipo)
{
$query = "SELECT* FROM t_tipo_banco WHERE LCASE(tipo) =$tipo;
$rs = $this->conn->Execute($query);
if($rs->RecordCount > 0)
{
$tipo_banco_encontrado = new Tipo_banco($rs->Fields('id_Tipo_banco'),$rs->Fields('tipo'), $rs->Fields('descripcion'));
return $tipo_banco_encontrado;

}
else
{
return null;
}

Como notaran uso la funcion LCASE(para minúsculas) que da igual usar la UCASE (mayúsculas) estas funciones de SQL, segun bibliografia consultada me da el campo convertido a minúscula o mayúscula, pero yo quiero que me de todos los campos en donde se cumpla que uno de ellos(el elegido, en este caso "tipo") sea una vez convetrido en minúscula o mayúscula = al campo entrado por parametro (el cual ya esta garantizado que viene en el formato deseado)

Por favor, me ayudan? GRACIAS, Heylin
  #2 (permalink)  
Antiguo 09/02/2011, 10:35
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Comparación de campos en mayúsculas o minúsculas

¿Qué charset para la tabla y qué cotejamiento estás usando para el campo? Si usas charset utf8 y modificas el cotejamiento a utf8_spanish_ci, por ej. ya lo tendrás hecho. Dará igual lo que pases, lo encontrará porque el contejamiento es case insensitive (ci). Si no quieres modificar el cotejamiento del campo, tienes que hacer la consulta con ese cotejamiento. Olvida por el momento ese LCASE
Dinos lo que tienes.
  #3 (permalink)  
Antiguo 09/02/2011, 10:52
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Comparación de campos en mayúsculas o minúsculas

lo que tengo en cotejamiento es latin1_swedish_ci, pero por favor explicame mejor que es lo que debo hacer. gracias por responderme.

provee lo que me explicaste, cambie el cotejamiento y me olvide del LCASE y no obtuve el resultado que explique antes.

si tienes alguna otra forma te lo agradezco.

Última edición por hcolumbie; 09/02/2011 a las 11:05 Razón: realice cambios
  #4 (permalink)  
Antiguo 09/02/2011, 11:40
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Comparación de campos en mayúsculas o minúsculas

el cotejamiento que tienes está bien para el sueco, pero imagino que tu texto no es sueco, pero bueno. Entiendo que el campo tipo tiene ese cotejamiento, aunque si es español, yo te recomendaría que lo cambiaras a latin1_spanish_ci, si es que tus búsquedas se hacen sobre texto en español. Si lo cambias, con esta consulta debería darte resultado.
SELECT * FROM t_tipo_banco WHERE tipo LIKE '{$tipo}';
  #5 (permalink)  
Antiguo 09/02/2011, 12:18
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Comparación de campos en mayúsculas o minúsculas

Ya hice tal y como me explicaste antes pero sigue sin salirme. uhmmmmm que fatal estoy, si sabes de alguna otra manera de hacerlo, por fa, explicame, porque asi no salio y lo necesito mucho!!!
  #6 (permalink)  
Antiguo 09/02/2011, 12:38
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Comparación de campos en mayúsculas o minúsculas

pon la estructura de la base y lagunos datos, y haremos alguna comprobación con datos. Pudiera ser que el problema estuviera fuera, en el archivo de programación, en el PHP o en el HTML, pero intentemos ver lo que ocurre en la base antes de enviarte a otro foro.
  #7 (permalink)  
Antiguo 10/02/2011, 13:19
 
Fecha de Ingreso: febrero-2010
Mensajes: 5
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Comparación de campos en mayúsculas o minúsculas

pues me dices que haga la estructura en la base de datos, quieres decir qie cambie el cotejamiento, y que ademas inseret datso en ese campo, para luego comparar, bueno si es eso , ya esta hecho y sigue sin salir,

help, help !!!
  #8 (permalink)  
Antiguo 10/02/2011, 13:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Comparación de campos en mayúsculas o minúsculas

Por qué no haces esto en tu administrador de base de datos (PHPMyAdmin) o el que uses:
SHOW CREATE DATABASE nombretubase
SHOW CREATE TABLE t_tipo_banco

y pones el texto en el post para que lo veamos.

Otra opción, todavía mejor, es exportar esa tabla como SQL y abrir luego el archivo y pegar aquí el código.

¿Por cierto, has intentado hacer la búsqueda directamente en el PHPMyAdmin, para ver si encuentra todo?
  #9 (permalink)  
Antiguo 10/02/2011, 13:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Comparación de campos en mayúsculas o minúsculas

perdón, he repetido el mensaje.

Etiquetas: mayusculas, minusculas, php+mysql+comparacion+
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:06.