Création d'une requette update avec que des variables

Fermé
juliendu51100 Messages postés 444 Date d'inscription samedi 14 mars 2015 Statut Membre Dernière intervention 22 juin 2021 - Modifié le 22 mai 2019 à 15:33
jordane45 Messages postés 38170 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 - 27 mai 2019 à 17:05
Bonjour a toutes et a tous je viens vers vous car je bloque et malgré des nombreuse recherche je n'est pas trouver ma solution voici théoriquement ce que je recherche a faire. Je souhaite uploader dans une table prédéfinit mais choisir sur quel colonne on vas faire l'upload voici mon script
   while ($compteur < 5)
   {
    $valeur[$compteur] = "valeur".$compteur;
    $type[$compteur] = "type".$compteur;

    if (isset($_POST["div_".$compteur]) AND isset($_POST["type_:".$compteur]))
    {
     echo "tour numéro ".$compteur;

     if ($_POST["div_".$compteur] !== $informations["valeur".$compteur] AND $_POST["type_:".$compteur] == "text" OR $_POST["type_:".$compteur] == "VIDE")
     {
      $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $req = $bdd->prepare('UPDATE _information_publier_ecrans SET $type[$compteur] = :type AND $valeur[$compteur] = :valeur WHERE id = :id');
      $req->execute(array(
       'type' => $_POST["type_:".$compteur],
        'valeur' => $_POST["div_".$compteur],
       'id' => $id
      ));

      $message_de_validation = "La diapositive a bien été mise a jour !";

     }
     // elseif (condition)
     // {
     //  # code...
     // }

    }
    $compteur++;
   }
Si vous avez des idées je suis preneur merci beaucoup pour votre aide ! :)
A voir également:

2 réponses

juliendu51100 Messages postés 444 Date d'inscription samedi 14 mars 2015 Statut Membre Dernière intervention 22 juin 2021 6
Modifié le 22 mai 2019 à 15:40
J'ai également tenter comme cela mais j'ai toujours là même erreur qui est : Fatal error: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ''t' = 'text' AND 'valeur1' = 'Voici mon premier dddddddddddde texte ' WHERE id =' à la ligne 1 in C:\Wamp64\www\projet_bts\affichage-dynamique\include\script\publication_ecran.php on line 401
( ! ) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe près de ''t' = 'text' AND 'valeur1' = 'Voici mon premier dddddddddddde texte ' WHERE id =' à la ligne 1 in C:\Wamp64\www\projet_bts\affichage-dynamique\include\script\publication_ecran.php on line 401
 while ($compteur < 5)
   {
    $valeur[$compteur] = "valeur".$compteur;
    $type[$compteur] = "type".$compteur;

    if (isset($_POST["div_".$compteur]) AND isset($_POST["type_:".$compteur]))
    {
     echo "tour numéro ".$compteur;

     if ($_POST["div_".$compteur] !== $informations["valeur".$compteur] AND $_POST["type_:".$compteur] == "text" OR $_POST["type_:".$compteur] == "VIDE")
     {
      $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      $req = $bdd->prepare('UPDATE _information_publier_ecrans SET :colonne1 = :type AND :colonne2 = :valeur WHERE id = :id');
      $req->execute(array(
       'colonne1' => $type[$compteur],
       'type' => $_POST["type_:".$compteur],
       'colonne2' => $valeur[$compteur],
       'valeur' => $_POST["div_".$compteur],
       'id' => $id
      ));

      $message_de_validation = "La diapositive a bien été mise a jour !";

     }
     // elseif (condition)
     // {
     //  # code...
     // }

    }
    $compteur++;
   }
0
juliendu51100 Messages postés 444 Date d'inscription samedi 14 mars 2015 Statut Membre Dernière intervention 22 juin 2021 6
26 mai 2019 à 17:30
UP, SVP..
0
jordane45 Messages postés 38170 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 661
Modifié le 27 mai 2019 à 00:09
PDO n'autorise pas d'utiliser des variables nommées comme nom de champ
0
juliendu51100 Messages postés 444 Date d'inscription samedi 14 mars 2015 Statut Membre Dernière intervention 22 juin 2021 6
27 mai 2019 à 13:55
Merci pour ta réponse aurais t-il pas un moyen de le faire avec une autre méthode ?
0
jordane45 Messages postés 38170 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 mai 2024 4 661 > juliendu51100 Messages postés 444 Date d'inscription samedi 14 mars 2015 Statut Membre Dernière intervention 22 juin 2021
Modifié le 27 mai 2019 à 17:06
en mettant le nom de la colonne directement dans la requête
$sql = 'UPDATE _information_publier_ecrans SET '.$type[$compteur].'= :type AND '.$valeur[$compteur].'= :valeur WHERE id = :id';
$datas = array(  'type' => $_POST["type_:".$compteur],
       'valeur' => $_POST["div_".$compteur],
       'id' => $id
      );
try{
  $req = $bdd->prepare($sql);
   $req->execute($datas);
}catch(Exception $e){
  echo "Erreur : ".$e->getMessage(à;
}


Je t'invite, au passage, à lire ET à appliquer le contenu de ces deux liens :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code


PS: Pense à mettre le sujet en RESOLU
https://www.commentcamarche.net/infos/25917-forum-ccm-mode-d-emploi-marquer-mon-sujet-comme-resolu/
0