Ver Mensaje Individual
  #17 (permalink)  
Antiguo 11/12/2013, 19:05
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Error en la consulta de una base de datos

Sigo sin tener claro si en la tabla de la base tienes valores numéricos, o cosas como "1-34-197".

Me explico un poco más claro:
Si tienes valores numéricos simples, entonces los datos del GET están llegando mal, porque para esa consulta debe venir un único valor, no varios, y menos aún separados por guiones.

En el caso de ser ID un campo numérico, y querer consultar por varios valores, pero GET aporta una cadena, primero debes transformar "0-67-198" en "0,67, 198", con comas, y luego puedes usar dos formas:
- Si quieres usar sólo números, la query deberá ser:
Código SQL:
Ver original
  1. SELECT * FROM products WHERE id IN($id)
Donde el resultado será
Código SQL:
Ver original
  1. SELECT * FROM products WHERE id IN(0,67, 198)

- Si quieres dejarlo como cadena, debes usar funciones:
Código SQL:
Ver original
  1. SELECT * FROM products WHERE FIND_IN_SET('$id')
donde el resultado será:
Código SQL:
Ver original
  1. SELECT * FROM products WHERE FIND_IN_SET('0,67, 198')

Ambos traerán resultados en ese caso.

Ahora bien, si el campo de la tabla en base fuese VARCHAR, y tuviese valores como "0-67-198", eso estaría MAL. Tendrías un serio defecto de diseño de datos, porque no deben ponerse múltiples valores de datos en un mismo campo de un único registro.
Eso requeriría rediseñar la tabla y las relaciones de la base.

Así que ¿cuál es realmente el contenido en un registro cualquiera de ese campo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)