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 originalQuery OK, 0 rows affected (0.01 sec)
-> (68, '12-07-08 10:32:00', 1, 2, 3),
-> (69, '12-07-08 10:32:02', 1, 3, 1),
-> (70, '12-07-08 10:33:00', 2, 3, 2),
-> (71, '12-07-08 10:34:00', 0, 2, -2);
Query OK, 4 rows affected (0.00 sec)
-> to_user_id = 2
-> from_user_id = 2
+----+---------------------+--------------+------------+---------+
| ID | APP_DATE | FROM_USER_ID | TO_USER_ID | CREDITS |
+----+---------------------+--------------+------------+---------+
| 71 | 2012-07-08 10:34:00 | 0 | 2 | -2 |
| 70 | 2012-07-08 10:33:00 | 2 | 3 | 2 |
| 68 | 2012-07-08 10:32:00 | 1 | 2 | 3 |
+----+---------------------+--------------+------------+---------+
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?