pdo, sql évite doublon dans bdd
Bonsoir,
Voilà mon soucis c'est que je n'arrive pas à écrire ma requête SQL qui permet d'éviter les doublons dans ma table, dans ma ta eleves_sports, un élève peu faire plusieurs sports, 3 maximuns, la requête SQL insert correctement aléatoirement un nombre de sports suivant 20 élèves voir pas du tout .exemple :
id |
eleves_id |
sports_id |
1 |
1 |
2 |
2 |
1 |
4 |
3 |
1 |
2 |
4 |
2 |
3 |
5 |
3 |
1 |
6 |
3 |
4 |
7 |
5 |
2 |
mais les doublons continuer à se faire.
voilà mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public function addSports_Eleves(TableElevesSports $sports_eleves)// Un objet TableElevesSports est attendu
{
$valeur_sports = $sports_eleves->sports_id; //variable $valeur_sports contenant le nombre aléatoire de sports pratiqué
for($i=1;$i<=$valeur_sports; $i++)
{
$sql= 'INSERT INTO eleves_sports(eleves_id,sports_id) VALUES (:eleves_id, :sports_id) WHERE NOT EXISTS(SELECT eleves_id,sports_id FROM eleves_sports WHERE eleves_id = :eleves_id AND sports_id = :sports_id)';
$stmnt = $this->_db->prepare($sql);
$valeurEleve_id = htmlspecialchars($sports_eleves->getEleves_id());
$valeurSport_id = rand(1,5); //random des 5 sports possibles
$stmnt->bindParam(':eleves_id', $valeurEleve_id);
$stmnt->bindParam(':sports_id',$valeurSport_id);
$stmnt->execute();
} |
merci de prendre le temps de m'aider