Bonjour à tous, je reviens vers vous pour du place holder dynamique.
Soit mon code suivant :
En gros je regarde si mes id sont passé en paramètre et différents de null.
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 $sql = "INSERT INTO bonusratio (idratio, idjeu, idtypecontent, idlangue, idniveau, bonus, descBonus) VALUE ('', ?, ?, ?, ?, ?, ?)"; $prep = $db->prepare($sql); //décut des tests pour savoir quoi inserer if (isset($idjeu) && $idjeu != NULL) { $prep->bindValue(1, $idjeu, PDO::PARAM_INT); } else { $req = "SELECT idjeu FROM jeux"; $res = $db->query($req)->fetchALL(PDO::FETCH_ASSOC); $arr = array(); foreach ($res as $value) //Création d'un tableau contenant mes id $arr[] = $value['idjeu']; //Associer les valeurs aux place holders for ($i = 0; $i < count($arr); $i++) { $prep->bindValue(1, $arr[$i], PDO::PARAM_INT); } //$prep->execute();
Si c'est le cas, j'ai une valeur pour mon bindValue.
Si il est null, je dois insérer toute les possibilités, donc avec tout mes idJeu pour cette exemple.
Mais je dois tester pour tout mes id
En faite si vous vous voulez cette fonction insère dans ma BDD un bonus en fonction de l'idjeu, idlangue, idtypecontent, idniveau.
Code : Sélectionner tout - Visualiser dans une fenêtre à part function ajouterBonus($idjeu, $idlangue, $idtypecontent, $idniveau, $bonus, $descBonus)
Exemple, je veux donner 20% de bonus au traduction faite en italien :
ajouterBonus(null,3,2,null,0.2,'Bonus de 20% pour les traductions faite en italien")
La où c'est null je dois passer tout les id de ma table, pour couvrir toutes les possibilités possible.
J'ai donc 2 questions :
1 - Ce code vous paraît-il bon ? (pas encore testé)
2 - $prep->execute(); dois-je le passer tout à la fin de ma function lorsque tout mes tableaux contenant mes id seront chargés ?
Merci.
Partager