2010-09-22 3 views
-1

Voici comment la requête ressemble à: (simplifié)Mysql - Une requête select simple renvoie des valeurs dublicables?

SELECT * FROM posts WHERE user='37' ORDER BY date DESC 

Je actuellement seulement ave une ligne dans cette table, mais pour une raison quelconque, il retourne deux lignes qui sont exactement les mêmes. Au début, je pensais que j'ai raté la boucle, mais j'ai essayé d'imprimer le tableau retourné avec print_r() et il retourne deux lignes.

J'ai essayé de chercher, mais je n'ai pas trouvé de problèmes similaires. Je me souviens cependant qu'un de mes amis avait le même problème à l'école, donc je suis sûr que nous ne sommes pas les seuls. Je n'ai probablement pas utilisé les bons termes de recherche, hein.

Des idées?

+0

Peut-être souhaitez-vous ajouter PHP en tant que tag supplémentaire comme le problème peut être dans votre code. – Jay

+0

Pouvez-vous poster un message "DESCRIBE"; et la requête réelle, non simplifiée? – geon

+0

tout semble bon, s'il vous plaît ajouter plus d'informations pour une enquête plus approfondie –

Répondre

0

Êtes-vous sûr vous avez seulement une ligne dans le tableau? Si oui, il semble que le problème doit se produire en dehors de SQL.

Que faites-vous en dehors de cette requête? Cela semble être la source probable du problème. Vous mentionnez une boucle: pourriez-vous ajouter deux fois le résultat de la requête à votre tableau? Ou est le tableau qui persiste entre les appels sans être réinitialisé (en d'autres termes, le résultat d'une requête précédente reste dans le tableau quand vous ne l'attendez pas)?

+0

J'ai juste triplé, et oui j'ai seulement une rangée dans la table. Je pense que j'ai trouvé le problème, et oui, la boucle était en cause. Le problème était que j'ai sélectionné une autre colonne_2 pendant que je faisais une boucle et que je sélectionnais column_1. La valeur de column_1 provient d'un tableau que j'ai déclaré plus haut dans le code. Voici à quoi ressemblait la requête: "SELECT * FROM messages WHERE utilisateur = '$ userId' OU utilisateur = '$ friend' ET date> $ limite ORDER BY date DESC". – Nike

1

Si vous avez un seul enregistrement (vérifiez cela), il doit s'agir d'une logique d'application qui duplique les valeurs renvoyées.

-1

limit 1 est votre ami :)

Essayez d'ajouter à la fin de votre requête.

Questions connexes