JeuWeb - Crée ton jeu par navigateur
[Réglé] Trouver les valeurs identiques dans une table - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Réglé] Trouver les valeurs identiques dans une table (/showthread.php?tid=1476)



[Réglé] Trouver les valeurs identiques dans une table - Archange - 18-07-2007

Hello tous le monde,

Ma question est peut-être extrement simple, mais impossible d'en trouver la solution.

Je m'explique, dans une des tables de ma bdd, je stock l'adresse IP du membre grâce à la fonction ip2long(), jusqu'ici aucun probléme, mais j'aimerais pouvoir trouvé par une requête ou autre, toutes les entrées identique, donc ici les mêmes IP ( en gros les membres ayant plusieurs compte ) .

Quelqu'un aurait une idée à la façon de trouver les adresses IP identiques pour des membres différents contenue dans ma table ?

Merci.


RE: Trouver les valeurs identiques dans une table - naholyr - 18-07-2007

Je verrais le truc en deux étapes :
1. Connaitre toutes les IP utilisé par plus d'un utilisateur (facile avec un "GROUP BY ip" mais avec ça tu n'as qu'une ligne par IP, et donc tu n'as pas le détail des utilisateurs qui ont cette IP).
2. Faire la liste des utilisateurs qui ont cette IP.

Donc je ferais une requête imbriquée genre
Code :
SELECT * FROM users WHERE ip IN (SELECT ip FROM users WHERE COUNT(id) > 1 GROUP BY ip) ORDER BY ip
Cette requête te donnera tous les utilisateurs dont l'IP est utilisée par au moins un autre utilisateur.

Par contre une requête imbriquée nécessite MySQL ≥ 4.1, donc je sais pas si tu pourras. Et sinon ça se jouera avec deux requêtes.

Peut-être qu'un vrai roxxor de SQL saura te donner une meilleure solution Smile


RE: Trouver les valeurs identiques dans une table - Roworll - 18-07-2007

Pour avoir juste la liste des IP multiples avec le nombre d'occurences :
Code PHP :
<?php 
SELECT ip
, count( * ) FROM users GROUP BY ip HAVING count( * ) >1

Pour avoir la liste détaillée des IP multiples
Code PHP :
<?php 
SELECT DISTINCT u1
.* FROM users AS u1
INNER JOIN users
AS u2 ON u1.ip = u2.ip AND u1.id <> u2.id
ORDER BY u1
.ip



RE: Trouver les valeurs identiques dans une table - Archange - 18-07-2007

Et bien merci à vous deux c'est parfait,cela me donne exactement le résultat souhaité Smile


RE: [Réglé] Trouver les valeurs identiques dans une table - Mysterarts - 18-07-2007

Je rajouterai juste que vérifier l'ip ne permet pas de conclure à un multi compte !!
Voir topic : http://www.jeuweb.org/board/showthread.php?tid=1941

Mysterarts


RE: [Réglé] Trouver les valeurs identiques dans une table - Archange - 18-07-2007

Yep Mysterarts ^^ j'ai bien suivi tous le topic sur le Multicompte :p
Ce que je fais est juste "en plus" et en complément des autres systeme pour traquer les multicomptes que je mettrais ^^

Mais merci ^^