Ver Mensaje Individual
  #11 (permalink)  
Antiguo 09/06/2012, 15:33
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: Resultados duplicados al utilizar OR

Fernandog07, el resultado que estás obteniendo no es por la consulta, porque la misma debería estar dandote la respuesta correcta.
Mira, si tomo el ejemplo de datos que nos das, y el esquema de tabla indicado, y además la propia consulta que haces, obtengo lo siguiente:
Código MySQL:
Ver original
  1. mysql> CREATE TABLE credits(ID int unsigned Primary Key,
  2.     ->     APP_DATE datetime,
  3.     ->     FROM_USER_ID int unsigned,
  4.     ->     TO_USER_ID int unsigned,
  5.     ->     CREDITS int);
  6. Query OK, 0 rows affected (0.01 sec)
  7.  
  8. mysql> INSERT INTO credits
  9.     -> VALUES
  10.     ->     (68, '12-07-08 10:32:00', 1, 2, 3),
  11.     ->     (69, '12-07-08 10:32:02', 1, 3, 1),
  12.     ->     (70, '12-07-08 10:33:00', 2, 3, 2),
  13.     ->     (71, '12-07-08 10:34:00', 0, 2, -2);
  14. Query OK, 4 rows affected (0.00 sec)
  15. Records: 4  Duplicates: 0  Warnings: 0
  16.  
  17. mysql> SELECT *
  18.     -> FROM credits
  19.     -> WHERE
  20.     ->     to_user_id = 2
  21.     ->     OR
  22.     ->     from_user_id = 2
  23.     -> ORDER BY id DESC;
  24. +----+---------------------+--------------+------------+---------+
  25. | ID | APP_DATE            | FROM_USER_ID | TO_USER_ID | CREDITS |
  26. +----+---------------------+--------------+------------+---------+
  27. | 71 | 2012-07-08 10:34:00 |            0 |          2 |      -2 |
  28. | 70 | 2012-07-08 10:33:00 |            2 |          3 |       2 |
  29. | 68 | 2012-07-08 10:32:00 |            1 |          2 |       3 |
  30. +----+---------------------+--------------+------------+---------+
  31. 3 rows in set (0.00 sec)

En otras palabras: la duplicación de datos no se está produciendo en la consulta que haces, sino en otra parte. Y si no es la consulta... sólo queda que algo se está haciendo mal con los datos que se obtienen, pero en la aplicación...
Haz lo siguiente: Primero verifica cuántos registros se obtienen de una consulta dada en el phpMyadmin (con los valores que usarás en la variable); luego realiza la consulta, pero haciendo que te muestre cuántos registros devuelve la query en el array que MySQL responde.
Si la cantidad de registros esperados y los efectivamente recibidos es iguale, el error está en la representación de la tabla.
Si la cantidad de registros es diferente, entonces está mal manejada la llamada a la base.
Lo que puedo asegurarte es que si los datos son esos, entonces la consulta está bien redactada.

¿Estás seguro que la consulta que nos estás mostrando es realmente la que se está haciendo?
¿No estarás haciendo un JOIN que no estás posteando?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)