Foros del Web » Programando para Internet » PHP »

Consulta de cadena exacta a la DB

Estas en el tema de Consulta de cadena exacta a la DB en el foro de PHP en Foros del Web. Me ocurre una cosa extraña. Hago una consulta al campo 'url' de la base de datos, que contiene sólo urls, con LIKE '%casa%' y me ...
  #1 (permalink)  
Antiguo 21/07/2008, 15:30
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 10 meses
Puntos: 1
Consulta de cadena exacta a la DB

Me ocurre una cosa extraña. Hago una consulta al campo 'url' de la base de datos, que contiene sólo urls, con LIKE '%casa%' y me devuelve todas las urls que continen casa (casa, casas. micasa, casadas, ...), pero también me devuelve las urls con saca, casera, picaras,..., es decir, todas las que contienen la c la a y la s.

He probado a hacer la misma consulta con el phpMyAdmin y no ocurre esto, sólo me devuleve los registros que contienen la cadena exacta casa

Alguien sabe por qué pasa esto?..

Gracias.
__________________
dominioslibres.info
  #2 (permalink)  
Antiguo 21/07/2008, 16:25
Avatar de jago86  
Fecha de Ingreso: abril-2008
Ubicación: Ibarra - Ecuador
Mensajes: 77
Antigüedad: 16 años
Puntos: 1
Respuesta: Consulta de cadena exacta a la DB

Pon algo del código que estás utilizando.
__________________
echo "i > u"
  #3 (permalink)  
Antiguo 21/07/2008, 16:51
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Consulta de cadena exacta a la DB

Estas seguro que te devuelve solo algunos registros?... en una de esas el tema es que te devuelve todos los registros y no los filtra, y si es asi debe ser un problema en el codigo.
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #4 (permalink)  
Antiguo 21/07/2008, 19:15
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Consulta de cadena exacta a la DB

Estoy seguro, sólo me devuelve los registros que contienen todas las letras de la cadena, pero en cualquier orden. Es cómo si usara un patrón en lugar de una cadena.

Código:
/* después de la conexión a la DB */

$sql = mysql_query("SELECT id, url FROM directorio_enlaces WHERE url LIKE '%$query%'");

while ($row = mysql_fetch_array($sql)){
      echo $row[url]."<br>";
      }
__________________
dominioslibres.info
  #5 (permalink)  
Antiguo 21/07/2008, 19:18
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Respuesta: Consulta de cadena exacta a la DB

Imprime la variable $query para ver si está llegando su valor corrrectamente.

Saludos,
  #6 (permalink)  
Antiguo 21/07/2008, 19:44
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Consulta de cadena exacta a la DB

Y digo yo... ¿Tendrá algo que ver si la query incluye un punto?.

Es que mira lo que pasa,

Con;

Código PHP:
$query "compartimos.net"
Me devuelve:

Y con:

Código PHP:
$query "compartimos"
Me devuelve:

__________________
dominioslibres.info

Última edición por talle; 22/07/2008 a las 19:04
  #7 (permalink)  
Antiguo 22/07/2008, 19:04
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Consulta de cadena exacta a la DB

Nadie puede decirme algo?....
__________________
dominioslibres.info
  #8 (permalink)  
Antiguo 22/07/2008, 20:10
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Consulta de cadena exacta a la DB

Q version de mysql usas ?...
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #9 (permalink)  
Antiguo 23/07/2008, 08:29
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Consulta de cadena exacta a la DB

Mysql-server 5.0.37
__________________
dominioslibres.info
  #10 (permalink)  
Antiguo 23/07/2008, 10:05
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 10 meses
Puntos: 3
Respuesta: Consulta de cadena exacta a la DB

¿No deberías ponerle comillas simples a url de $row[url]?
Así: $row['url']
  #11 (permalink)  
Antiguo 23/07/2008, 10:11
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: Consulta de cadena exacta a la DB

Cita:
Iniciado por Anastasiaphp Ver Mensaje
¿No deberías ponerle comillas simples a url de $row[url]?
Así: $row['url']
Si, deberia.
Lo que ocurre si no pones comillas es que php ve a url como constante y como no ha sido definida asume que el valor de url es 'url'. Entonces funciona igual, pero no es lo ideal.
  #12 (permalink)  
Antiguo 23/07/2008, 10:19
Avatar de Anastasiaphp  
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 10 meses
Puntos: 3
Respuesta: Consulta de cadena exacta a la DB

Cita:
Iniciado por xbx Ver Mensaje
Si, deberia.
Lo que ocurre si no pones comillas es que php ve a url como constante y como no ha sido definida asume que el valor de url es 'url'. Entonces funciona igual, pero no es lo ideal.
Gracias por el apunte
  #13 (permalink)  
Antiguo 23/07/2008, 10:23
Avatar de xbx
xbx
 
Fecha de Ingreso: mayo-2008
Ubicación: /home/xbx
Mensajes: 301
Antigüedad: 15 años, 11 meses
Puntos: 11
Respuesta: Consulta de cadena exacta a la DB

de nada

Saludos
  #14 (permalink)  
Antiguo 25/07/2008, 15:17
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 10 meses
Puntos: 1
Respuesta: Consulta de cadena exacta a la DB

Perdonad, el error estaba en otra parte del código.

Mil disculpas.
__________________
dominioslibres.info
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 10:14.