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 :
merci de prendre le temps de m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
Partager