Comment afficher un resultat lorsque deux champs sont identiques ?

CerberusXt Messages postés 4 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 19 août 2004 - 17 août 2004 à 21:02
CerberusXt Messages postés 4 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 19 août 2004 - 19 août 2004 à 10:18
Je ne sais pas si le sujet de mon topic est suffisamment clair aussi je vais expliciter un peu.
Voila j'aimerais savoir s'il existe une fonction en php qui m'affiche un resultat lorsque deux champs sont identiques:
Ex dans ma bdd j'ai le champs nom, si deux personnes enregistrent le meme nom dans la base j'aimerais avoir un code qui m'affiche les comptes en question.
Merci d'avance pour votre aide :)

6 réponses

cs_lotr Messages postés 128 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 12 août 2005
18 août 2004 à 09:17
Bonjour à toi aussi...

je suis pas vraiment sure de comprendre ta question. Si tu veux récupérer les infos sur tous les utilisateurs qui s'appellent 'toto', tu fais une requête du style :
SELECT ... FROM ta_table WHERE nom='toto'
Cependant, si tu stocke des infos sur tes utilisateurs (ex : espace membres), tu dois faire en sorte de pouvoir tous les différencier les uns des autres. Le plus fréquent est d'utiliser un système login/password. Donc, quand un nouveau membre veux s'inscrire, tu dois vérifier qu'aucun utilisateur n'utilise déjà les mêmes login/password.
Voila, j'espère avoir répondu à ta question. Si ce n'est pas le cas, essaie de préciser un peu ta question.
0
CerberusXt Messages postés 4 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 19 août 2004
18 août 2004 à 10:15
Salut lotr, disons que je sais manipule les bdd. Je vais essayer de t'expliquer concretement ce que je souhaite faire:
Je fais un jeu en php, le probleme c'est que rien n'empeche les joueurs de faire du "multi-compte" c'est a dire de creer plusieurs personnage, pour eviter ca je suis en train de realiser une interface administrateur qui me permettrait de detecter lorsque 2 comptes possede des similitude afin d'etudier si c'est du multi compte ou pas. C'est pourquoi je cherche une fonction qui me permettrait d'afficher par ex un resultat lorsque 2 comptes possedent le meme login ou bien une adresse email similaire. ^^
0
cs_lotr Messages postés 128 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 12 août 2005
18 août 2004 à 16:36
Ah... OK, je comprends mieux là lol.
Ben, y'a de fonction php toute faite qui fasse ça. Perso, je pense que le mieux est d'empécher dès le départ que ce genre de doublon existe : quand un nouveau joueur s'inscrit, tu vérifies dans ta base si le mail n'existe pas déjà et s'il existe, tu mets un message au joueur pour lui rappeler que le multi-joueur est interdit.
Sinon, pour ce que tu veux faire, je pense que le plus simple est de faire des requêtes avec COUNT et GROUP BY. Ainsi, tu peux compter s'il y a plus d'une ligne ayant le même mail et/ou login.
Mais bon, je ne suis pas sure que ceux qui font du multi-compte soient si naïfs... Pour avoir moi même pratiqué (je sais c'est pas bien), je peux te dire que j'utilisais un mail, login et password différent pour chacun de mes deux personnages.
0
CerberusXt Messages postés 4 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 19 août 2004
18 août 2004 à 18:04
Justement en laissant la liberte au joueurs de mettre le login qu'ils veulent je les repere plus facilement(j'en ai deja reperer une 10 et oui tout le monde n'est pas malin)
Sinon, si j'avais pu grouper les similitudes j'aurais pu enregistrer l'adresse IP des joueurs a chaque connections pour ainsi faire des rapprochement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lotr Messages postés 128 Date d'inscription mardi 11 mai 2004 Statut Membre Dernière intervention 12 août 2005
18 août 2004 à 22:08
L'IP peut effectivement être un indice mais ce n'est pas toujours discriminant.
Quoi qu'il en soit, tu peux toujours essayer quelque chose du genre :

$req = "SELECT mail, COUNT(mail) AS nb FROM ta_table GROUP BY mail";
$res = mysql_query($req);
while ($ligne = mysql_fetch_assoc($res))
{
if ($ligne['nb'] >1)
{
echo'Le joueur ayant l'adresse '.$ligne['mail'].' fait du multi-compte !!';
}
}

Dans cet exemple (j'espère qu'il y a pas trop de fautes, je l'ai pas testé), tu devrais normalement voir s'afficher toutes les adresses mail qui apparaissent plusieurs fois dans ta tables de joueurs. A toi d'adapter ensuite cette idée selon tes besoins.
Voila, bonne chance ;)
0
CerberusXt Messages postés 4 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 19 août 2004
19 août 2004 à 10:18
Ok, merci, oui je pense que ce code devrait marcher mais bon, ce qui m'ennuyait au depart c'etait de faire une boucle sur une table avec plus de 2000 entrees mais apparemment ca ne pompe pas tant que ca.
Je te tiens au courant de l'avance et je te donnerais les corrections qu'il faut y apporter s'il y a besoin d'en apporter.
0
Rejoignez-nous