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

juliendu51100 Messages postés 487 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
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 ! :)

2 réponses

  1. juliendu51100 Messages postés 487 Statut Membre 6
     
    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
  2. juliendu51100 Messages postés 487 Statut Membre 6
     
    UP, SVP..
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      PDO n'autorise pas d'utiliser des variables nommées comme nom de champ
      0
    2. juliendu51100 Messages postés 487 Statut Membre 6
       
      Merci pour ta réponse aurais t-il pas un moyen de le faire avec une autre méthode ?
      0
      1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832 > juliendu51100 Messages postés 487 Statut Membre
         
        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