Bonjour,
Je ne suis pas certain de devoir poster cela ici ou dans la section PDO...
Je cherche à "contrôler" une insertion dans la base de donnée -> J'ai une table compétence_personnel dans laquelle j'insert l'id_Personnel, l'id_Competence, le niveau, et si le salarié en question est en formation ou non. Jusque là ok. - Le soucis c'est que j'aimerais qu'il ne soit pas possible d'insérer une deuxième fois la même compétence pour le même salarié. Exemple : J'insert l'id_Personnel 119, que j'associe à l'id_Competence 19, je refais la même manipulation, c'est-à-dire je ré-insert les mêmes données sauf que je souhaite retourner une erreur du style "compétence déjà acquise / pas possible". Je bloque à ce niveau, j'ai testé plusieurs choses différentes.
l'id_Competence ($idComp), et l'id_Personnel($idSal1) sont "générés" dans un input type="hidden" avec de l'ajax. Apparemment quand je var_dump($request['id_Competence']) et var_dump($request['Personnel']) ça me retourne "null".
Mon code atm :
Si quelqu'un a une idée pour me mettre sur la voie :-)
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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 if(isset($_POST['idSal1']) && isset($_POST['titreComp']) && isset($_POST['niveau']) && isset($_POST['formation']) && isset($_POST['nomSal']) && isset($_POST['idComp'])) { $idSal1 = htmlspecialchars($_POST['idSal1']); $idComp = htmlspecialchars($_POST['idComp']); $niveau = htmlspecialchars($_POST['niveau']); $formation = htmlspecialchars($_POST['formation']); $test = false; $maRequete = $db->query("SELECT * FROM competence_personnel WHERE id_Personnel = '".$idSal1."'"); if(!empty($_POST['idSal1']) && !empty($_POST['idComp']) && $_POST['niveau'] != "" && $_POST['formation'] != "" ) { while($request = $maRequete->fetch() && $test == false) { if($request['id_Competence'] != $idComp && $request['id_Personnel'] != $idSal1) { var_dump($request['id_Competence']); var_dump($idComp); $test = true; echo '4'; } } if($test == true) { $insert = $db->prepare('INSERT INTO competence_personnel (id_Personnel, id_Competence, niveau, formation) VALUES(:id_Personnel, :id_Competence, :niveau, :formation)'); $insert->execute(array( 'id_Personnel'=>$idSal1, 'id_Competence'=>$idComp, 'niveau'=>$niveau, 'formation'=>$formation )); echo "<script>alert(\"Vos données ont été enregistrées\")</script>"; } else { echo "<script>alert(\"Compétence déjà acquise\")</script>"; } } else { echo "<script>alert(\"Le formulaire n'est pas complet\")</script>"; } } ?>
Merci!
Partager