Empecher les doublons

AddiKTiV Messages postés 1 Date d'inscription mercredi 16 août 2006 Statut Membre Dernière intervention 9 septembre 2007 - 9 sept. 2007 à 01:56
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 9 sept. 2007 à 02:10
Bonjour a tous et merci de prendrele temps de me lire.

J'ai un petit problème et je ne sais pas trop par quel bout je vais le prendre.
J'ai un site qui utilise une base de données comprenant 3 tables.
La premiere concerne les utilisateurs ... login, pass, actif le tout indexer par id_user
La seconde concerne des serveurs ... IP, Port, .............. le tout indexer par id_serveur
La derniere concerne les droits des utilisateurs sur les serveurs ... id_user, id_serveur, perm_xxx, perm_yyy le tout indexer par id_permissions.

Voila mon soucis : Lorsque je vais ajouter de nouvelles permissions, rien ne va m'empecher de selectionner plusieurs fois le meme couple id_user/id_serveur pour plusieurs id_permissions ... resultat des courses je vais pouvoir dire tout et son contraire dans 2 lignes de la meme tables et donc mon script php ne va plus savoir ou donner de la tete.
De meme, lorsque je vais vouloir editer les permissions d'un utilisateur, je pourrais eventuellement affecter celles ci a un serveur pour lequel il a déjà d'autres permissions

Je me demandais donc si quelqun aurais une idée pour qu'avant de lancer ma requete INSERT INTO etcetc.. je puisse verifier si il n'y a pas déjà un enregistrement dans la talbe qui contiens le meme couple id_user/id_serveur. Et evidement idem pour ma requete UPDATE.

Voilou, d'avance merci a vous tous.

1 réponse

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
9 sept. 2007 à 02:10
Hello,

tu dois utiliser des clés primaires et uniques pour dire à SQL ce qui ne devrait jamais exister en doublon. Déjà ça, ça évitera les accidents.

Ensuite, plusieurs possibilités selon ce que tu veux faire : les différentes syntaxes de INSERT (IGNORE, ON DUPLICATE KEY etc) ou alors simplement des select pour vérifier si tel enregistrement existe déjà.

Ce serait trop long d'expliquer plus en détail, ce que tu dois faire c'est aller sur des sites pour apprendre les bases de MySQL, genre developpez.com qui ont des bons tutoriaux à mon avis, ou encore la doc officielle de MySQL.

à+
0
Rejoignez-nous