Bonjour, je vais commencer par un exemple afin d'expliquer le probleme:
Dans le formulaire les champs avec les variables $var2 et $var3 ne sont pas obligatoire mais si elles existent je doit les insérés dans la base.
Je fait donc 4 conditions, une avec $var2 et $var3, une avec seulement $var2, une avec seulement $var3, et une sans aucune des deux.
C'est super long et répétitif.
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 if (!empty($var2) AND !empty($var3)) { $req = $bdd->prepare('INSERT INTO table(id, champ1, champ2, champ3) VALUES("", :var1, :var2, :var3)'); $req->bindValue(':var1', $var1, PDO::PARAM_STR); $req->bindValue(':var2', $var2, PDO::PARAM_STR); $req->bindValue(':var3', $var3, PDO::PARAM_STR); $req->execute(); $req->closeCursor(); } if (!empty($var2) AND empty($var3)) { $req = $bdd->prepare('INSERT INTO table(id, champ1, champ2) VALUES("", :var1, :var2)'); $req->bindValue(':var1', $var1, PDO::PARAM_STR); $req->bindValue(':var2', $var2, PDO::PARAM_STR); $req->execute(); $req->closeCursor(); } if (empty($var2) AND !empty($var3)) { ... } if (empty($var2) AND empty($var3)) { .... }
Je voudrais avoir quelque chose comme ceci:
Avec les bonnes conditions dans la requête qui font apparaitre les champs et les marqueurs nommés s'ils existent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $req = $bdd->prepare('INSERT INTO table(id, champ1, champ2, champ3) VALUES("", :var1, :var2, :var3)'); $req->bindValue(':var1', $var1, PDO::PARAM_STR); if(!empty($var2)) $req->bindValue(':var2', $var2, PDO::PARAM_STR); if(!empty($var3)) $req->bindValue(':var3', $var3, PDO::PARAM_STR); $req->execute(); $req->closeCursor();
Il y a t-il une solution ?
Partager