Bonjour à tous, je reviens vers vous pour du place holder dynamique.

Soit mon code suivant :
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();
En gros je regarde si mes id sont passé en paramètre et différents de null.
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
function ajouterBonus($idjeu, $idlangue, $idtypecontent, $idniveau, $bonus, $descBonus)
En faite si vous vous voulez cette fonction insère dans ma BDD un bonus en fonction de l'idjeu, idlangue, idtypecontent, idniveau.

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.