Partage
  • Partager sur Facebook
  • Partager sur Twitter

Update multiples en PHP

    16 novembre 2017 à 15:27:46

    Bonjour

    j’ai suivi le tuto de Qwix (ici) et j’ai bien compris le fonctionnement et j’ai réussi à obtenir le même résultat après l’avoir adapté en PDO (codes ci-dessous).

    1. On affiche les données de la base dans une page modification1.php ; On passe l’id de l’enregistrement à modifier par l’URL et on récupère ensuite l’id par la méthode GET sur la page suivante modification2.php?id. On a donc autant de boutons "modifier" redirigeant vers une page de modification2.php?id que d’enregistrement dans la table.

    2. Les champs du formulaire modification2.php?id sont pré-remplis par une requête sur les données disponibles (value). L’utilisateur peut donc modifier et lorsqu’il clique sur modifier, les données du formulaire sont envoyées par méthode POST à une 3ème page modification3.php qui fait la mise à jour à l’aide d’une requête UPDATE avec un WHERE sur l’id.

    Tout çà marche parfaitement même si j’ai bien compris qu’il faut l’optimiser pour la sécurité mais je verrai çà dans un second temps.

    Ce que je veux faire maintenant, c’est faire des UPDATE multiples.

    J’affiche les données de ma table sous forme de tableau ; Il faut donc que je passe plusieurs id.

    Il me semble que la solution serait :

    1. d’utiliser un array sur l’id (ligne 25 modification2.php) puis

    2. parcourir l’array en faisant un while plutôt qu’un if (ligne 34 modification2.php). Mais là j’ai un peu de mal à concevoir le code. Il faut en plus que je "sorte" le bouton "Modifier" de la page modification2.php de la boucle pour que tout soit modifié d’un coup et pas seulement pour chaque enregistrement.

    3. Enfin, dans ma page modification3.php (ligne 36), il faut que je boucle sur l’id pour mettre à jour tous les enregistrements de la page modification2.php.

    Mais n’ayant jusqu’à présent jamais utilisé d’array, je n’arrive pas à mettre tout çà en place.

    Si quelqu’un peut m’aider…

    modification1.php

    <html>
      <head>
        <title>modification de données en PHP :: partie 1</title>
      </head>
    <body>
    <?php
    //connection au serveur
    try
    {
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
    catch(Exception $e)
    {
    // En cas d'erreur, on affiche un message et on arrête tout
    die('Erreur : '.$e->getMessage());
    }
     
    //requête SQL:
    $sql = "SELECT * FROM gbd_dat ORDER BY pat, fic, que" ;
     
    //exécution de la requête:
    $result = $bdd->query($sql); 
    
    
    //affichage des données:
    while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
    {
    echo(
    "<div align=\"center\">"
    .$donnees['pat']." ".$donnees['fic']
    ." <a href=\"modification2.php?idPersonne=".$donnees['id']."\">modifier</a></div>\n"
    ) ;
    }
    ?>
    
    </body>
    </html>



    modification2.php

    <html>
      <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="style.css" />
        <title>modification de données en PHP :: partie2</title>
      </head>
    <body>
    
    <?php
    //connection au serveur
    try
    {
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
    catch(Exception $e)
    {
    // En cas d'erreur, on affiche un message et on arrête tout
    die('Erreur : '.$e->getMessage());
    }
     
     
    //récupération de la variable d'URL,
    //qui va nous permettre de savoir quel enregistrement modifier
    $id  = $_GET["idPersonne"] ;
     
    //requête SQL:
    $sql = "SELECT * FROM gbd_dat WHERE id = ".$id ;
     
    //exécution de la requête:
    $result = $bdd->query($sql); 
     
    //affichage des données:
    if($donnees = $result->fetch(PDO::FETCH_ASSOC))
    {
    ?>
    
    <form name="insertion" action="modification3.php" method="POST">
      <input type="hidden" name="id" value="<?php echo($id) ;?>">
      <table border="0" align="center" cellspacing="2" cellpadding="2">
        <tr align="center">
          <td>Patient</td>
          <td><input type="text" name="pat" value="<?php echo $donnees['pat'] ;?>"></td>
        </tr>
        <tr align="center">
          <td>Fiche</td>
          <td><input type="text" name="fic" value="<?php echo $donnees['fic'] ;?>"></td>
        </tr>
        <tr align="center">
          <td>Question</td>
          <td><input type="text" name="que" value="<?php echo $donnees['que'] ;?>"></td>
        </tr>
        <tr align="center">
          <td>Description</td>
          <td><input type="text" name="des" value="<?php echo $donnees['des'] ;?>"></td>
        </tr>
        <tr align="center">
          <td>Détails</td>
          <td><input type="text" name="det" value="<?php echo $donnees['det'] ;?>"></td>
        </tr>
        <tr align="center">
          <td>Corrections</td>
          <td><input type="text" name="cor" value="<?php echo $donnees['cor'] ;?>"></td>
        </tr>
        <tr align="center">
          <td>Non récupérable</td>
          <td><input type="number" name="non_rec" value="<?php echo $donnees['non_rec'] ;?>"></td>
        </tr>
        <tr align="center">
          <td>Commentaires</td>
          <td><input type="text" name="com" value="<?php echo $donnees['com'] ;?>"></td>
        </tr>
    
        <tr align="center">
          <td colspan="2"><input type="submit" value="modifier"></td>
        </tr>
      </table>
    </form>
    
      <?php
      }//fin if 
      ?>
    
    </body>
    </html>



    modification3.php

    <?php
    //connection au serveur
    try
    {
    // On se connecte à MySQL
    $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
    catch(Exception $e)
    {
    // En cas d'erreur, on affiche un message et on arrête tout
    die('Erreur : '.$e->getMessage());
    }
     
    //récupération des valeurs des champs:
    //numéro patient:
    $patient = $_POST["pat"] ;
    //Fiche:
    $fiche = $_POST["fic"] ;
    //Question:
    $question = $_POST["que"] ;
    //Description:
    $description = $_POST["des"] ;
    //Détails:
    $details = $_POST["det"] ;
    //Correction:
    $correction = $_POST["cor"] ;
    //Non récupérable:
    $nonrecuperable = $_POST["non_rec"] ;
    //Commentaires :
    $commentaires = $_POST["com"] ;
    
    //récupération de l'identifiant de la personne:
    $id = $_POST["id"] ;
     
    //création de la requête SQL:
    $sql = "UPDATE gbd_dat
            SET
            pat = '$patient',
            fic = '$fiche',
            que = '$question',
            des = '$description',
            det = '$details',
            cor = '$correction',
            non_rec = $nonrecuperable,
            com = '$commentaires'
            WHERE id = '$id' " ;
    
    //exécution de la requête SQL:
    $requete = $bdd->query($sql);
    
     
    //affichage des résultats, pour savoir si la modification a marchée:
    if($requete)
    {
        echo("La modification à été correctement effectuée") ;
    }
    else
    {
        echo("La modification à échouée") ;
    }
    ?>



    -
    Edité par djé22 16 novembre 2017 à 15:28:21

    • Partager sur Facebook
    • Partager sur Twitter
      16 novembre 2017 à 15:46:31

      Pourquoi 2 topics sur le même sujet ?

      https://openclassrooms.com/forum/sujet/probleme-update-multiple-php-javascript

      Surtout que je t'ai donné une piste de réflexion sur l'autre topic ;)

      ++

      • Partager sur Facebook
      • Partager sur Twitter
        16 novembre 2017 à 16:03:25

        en fait je travaille sur 2 tuto différents

        l'un de Qwix tout en php que j'essaie d’adapter pour des updates multiples

        et l'autre trouvé sur Mediabox (ici) et qui utilise Javascript et je qu'essaie d'adapter tout court et qui explique l'update multiple mais qu'il faut adapter en PDO...

        • Partager sur Facebook
        • Partager sur Twitter
          16 novembre 2017 à 16:05:49

          Alors commence par lire l'autre topic, travaille en premier sur PHP / PDO, JS viendra plus tard.

          ++

          EDIT: une dernière chose, tu travailles sur 2 tutos en parallèle => pas bon et qui puls est vieux de 11 ans => trèèèèès dépassé (et pas que mysql)

          ++

          -
          Edité par christouphe 16 novembre 2017 à 16:08:30

          • Partager sur Facebook
          • Partager sur Twitter
            16 novembre 2017 à 16:24:57

            ok, je clôture l'autre post et me consacre à celui-ci

            merci+

            -
            Edité par djé22 16 novembre 2017 à 16:26:14

            • Partager sur Facebook
            • Partager sur Twitter
              16 novembre 2017 à 16:25:52

              ;)

              Je t'aiderai sur l'autre, mais déjà travailles sur ce que j'ai orienté :p

              ++

              • Partager sur Facebook
              • Partager sur Twitter
                16 novembre 2017 à 16:38:14

                euh, tu m'as donné 2 pistes de travail sur le tuto PHP/JS... pas sur celui-là...
                • Partager sur Facebook
                • Partager sur Twitter
                  16 novembre 2017 à 16:56:57

                  Bonjour,

                  concrètement, si tu ne veux modifier que certaines lignes :

                  1- Tu mets une checkbox par ligne (par exemple name="id[]")

                  2- Tu récupères toutes les id des tuples à modifier avec l'array $_POST['id'] sur lequel tu fais un implode :$id = implode(',',$_POSt['id']). Ta requête sera donc du style $req = 'SELECT * FROM table WHERE id IN('.$id.')');

                  3- Tu affiches tes lignes avec les input remplis des valeurs de la table à modifier, toujours an  name="id[]", name="nom[]", etc...

                  4- Tu envoies le formulaire et tu peux récupérer des arrays du même style que tu parcoures avec un FOR pour faire les requêtes de mise à jour.

                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 novembre 2017 à 11:54:04

                    Bonjour,

                    merci philodick

                    1. l'utilisateur devra apporter un commentaire sur chaque enregistrement donc j'ai fait un array sur les id ($array = $query->fetchAll(PDO::FETCH_COLUMN,0)) que je récupère ensuite grâce à $_SESSION ; j'ai lu que $_SESSION faisait déjà un array donc peut-être que mon $array est inutile...

                    2. je ne connaissait pas implode mais çà à l'air simple

                    3. si je transforme mon if en while (ligne 34 du code modification2.php) j'affiche tous les enregistrements correspondant aux id passés dans le where

                    4. ok pour le FOR pour mettre à jour tous les enregistrements concernés

                    je teste çà cet am

                    merci+++

                    • Partager sur Facebook
                    • Partager sur Twitter
                      17 novembre 2017 à 12:06:53

                      Attention au 4:

                      il faut préparer la requête HORS de la boucle, puis DANS la boucle utiliser bindParam + execute()

                      ++

                      • Partager sur Facebook
                      • Partager sur Twitter
                        17 novembre 2017 à 14:03:56

                        > puis DANS la boucle utiliser bindParam

                        Justement, non : bindParam, si c'est bien utilisé et est approprié, ça devrait également être fait avant d'itérer. Le but étant de binder une variable une fois pour toute (et lors du execute, la valeur courante de celle-ci sera automatiquement bindée en interne). Dans le cas contraire, bindValue est suffisante.

                        • Partager sur Facebook
                        • Partager sur Twitter
                          17 novembre 2017 à 14:18:09

                          Ah donc ce ci:

                          <?php
                              $req = "insert into toto (mon,prenom) value (:nom,:prenom)";
                              $stmt = $bdd->prepare($req);
                              $stmt->bindParam('nom',$nom,PDO::PARAM_STR);
                              $stmt->bindParam('prenom',$prenom,PDO::PARAM_STR);
                          
                              foreach ($_POST AS $key => $value) {
                                  if ($key == 'nom') {
                                      $nom = $value
                                  }
                                  if ($key == 'prenom') {
                                      $prenom = $value
                                  }
                                  $stmt->execute();
                              }



                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 novembre 2017 à 14:21:33

                            Elles seraient bien placées mais le code est faux (l'execute devrait être placé après le foreach) et n'a aucun intérêt/est mal choisi (pas d'exécution multiple et on pourrait directement binder $_POST['nom']/$_POST['prenom']).

                            -
                            Edité par julp 17 novembre 2017 à 14:22:10

                            • Partager sur Facebook
                            • Partager sur Twitter
                              17 novembre 2017 à 14:31:53

                              erff, j'ai pensé tableau de noms et j'ai mis le nom tout court, quelle truffe :-°
                              • Partager sur Facebook
                              • Partager sur Twitter
                                17 novembre 2017 à 14:55:44

                                djé22 a écrit:

                                1. l'utilisateur devra apporter un commentaire sur chaque enregistrement donc j'ai fait un array sur les id ($array = $query->fetchAll(PDO::FETCH_COLUMN,0)) que je récupère ensuite grâce à $_SESSION ; j'ai lu que $_SESSION faisait déjà un array donc peut-être que mon $array est inutile...


                                Si j'ai bien compris et que tu ne veux dans un premier temps n'afficher que les lignes que l'utilisateur a choisi, mettre tes id en session ne me paraît pas pertinent.

                                L'intérêt d'avoir des inputs avec un name de la forme id[], nom[],prenom[] etc c'est de récupérer un array facilement utlisable;

                                 En effet, l'équivalent de la première ligne sera $POST['id'][0], $POST['nom'][0], $POST['prenom'][0], de la deuxème ligne $POST['id'][1], $POST['nom'][1], $POST['prenom'][1], etc...

                                C'est pour cela que je te conseillais un boucle for, tu n'as plus qu'à incrémenter sur le nombre de lignes de l'array.

                                En reprenant l'exemple de Christouphe tu aurais quelque chose comme :

                                <?php
                                    $req = "update toto SET nom=:nom,prenom=:prenom WHERE id=:id";
                                    $stmt = $bdd->prepare($req);
                                    $nb = count($_POST['id']);
                                
                                    $stmt->bindParam('nom',$nom,PDO::PARAM_STR);
                                    $stmt->bindParam('prenom',$prenom,PDO::PARAM_STR);
                                    $stmt->bindParam('id',$id,PDO::PARAM_INT);
                                 for($i=0;$i<$nb;$i++)
                                   {
                                $nom=$_POST['nom'][$i];
                                $prenom=$_POST['prenom'][$i];
                                $id=$_POST['id'][$i];
                                $stmt->execute();
                                    }



                                -
                                Edité par philodick 17 novembre 2017 à 14:56:07

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  17 novembre 2017 à 15:47:29

                                  merci pour vos réponses

                                  philodick a écrit:

                                  Si j'ai bien compris et que tu ne veux dans un premier temps n'afficher que les lignes que l'utilisateur a choisi, mettre tes id en session ne me paraît pas pertinent.

                                  pas exactement ; les données s'afficheront à l'utilisateur sous forme de tableaux de 15 enregistrements et il pourra naviguer par pages et par filtres (cf capture ci-dessous). je souhaite donc que l'utilisateur puisse saisir dans les enregistrements qui s'affichent en cliquant sur un bouton. c'est pour çà que j'ai récupéré les id de ma page dans un array mais je ne sais pas si je me fais bien comprendre ?

                                  voilà où j'en suis des codes mais çà ne fonctionne pas car il me dit que mes variables (lignes 51 à 59 du code modification3.php) ne sont pas définies et que j'ai un Uninitialized string offset: 0 (lignes 67, 68 et 70 du code modification3.php)

                                  jusque là j'avais utilisé bindValue dans mes requêtes préparées mais c'est bindParam, çà change quelquechose ?

                                  modification1.php

                                  <html>
                                    <head>
                                      <title>modification de données en PHP :: partie 1</title>
                                    </head>
                                  <body>
                                  <?php
                                  
                                  session_start();
                                  //connection au serveur
                                  try
                                  {
                                  // On se connecte à MySQL
                                  $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                  }
                                  catch(Exception $e)
                                  {
                                  // En cas d'erreur, on affiche un message et on arrête tout
                                  die('Erreur : '.$e->getMessage());
                                  }
                                   
                                  //requête SQL:
                                  //$sql = "SELECT * FROM gbd_dat ORDER BY pat, fic, que" ;
                                  $query = $bdd->prepare('SELECT * FROM gbd_dat ORDER BY pat, fic, que');
                                  $query->execute();
                                  
                                  //je récupère mes idéntifiants dans un array (vérifier en utilisant var_dump($array))
                                  //il faut que je transmette mon array() à la page modification2.php en utilisant $_SESSION (peut-être inutile de passer par un array avant SESSION
                                  //car SESSION est déjà un array ?)
                                  $id = $query->fetchAll(PDO::FETCH_COLUMN,0);
                                  //exécution de la requête:
                                  //$result = $bdd->query($sql); 
                                  
                                  $_SESSION['id'] = $id;
                                  
                                  //var_dump($array);
                                  $query->closeCursor();
                                  
                                  $query = $bdd->prepare('SELECT * FROM gbd_dat ORDER BY pat, fic, que');
                                  $query->execute();
                                  //affichage des données:
                                  while ($donnees = $query->fetch(PDO::FETCH_ASSOC))
                                  {
                                  
                                  echo(
                                  "<div align=\"center\">"
                                  .$donnees['pat']." ".$donnees['fic']
                                  ." <a href=\"modification2.php?idPersonne=".$donnees['id']."\">modifier</a></div>\n"
                                  ) ;
                                  }
                                  ?>
                                  
                                  </body>
                                  </html>

                                  modification2.php

                                  <html>
                                    <head>
                                      <meta charset="utf-8" />
                                      <link rel="stylesheet" href="style.css" />
                                      <title>modification de données en PHP :: partie2</title>
                                    </head>
                                  <body>
                                  
                                  <?php
                                  session_start();
                                  //connection au serveur
                                  try
                                  {
                                  // On se connecte à MySQL
                                  $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                  }
                                  catch(Exception $e)
                                  {
                                  // En cas d'erreur, on affiche un message et on arrête tout
                                  die('Erreur : '.$e->getMessage());
                                  }
                                   
                                   
                                  //récupération de la variable d'URL,
                                  //qui va nous permettre de savoir quel enregistrement modifier
                                  //$id  = $_GET["idPersonne"] ;
                                  //$id = $_SESSION['array'];
                                  $id = implode(',',$_SESSION['id']);
                                  
                                  //je récupère bien mes id dans $id (=array) sous la forme d'une chaine des id avec l'implode
                                  //var_dump($id);
                                  
                                  //requête SQL:
                                  $sql = "SELECT * FROM gbd_dat WHERE id IN (".$id.")" ;
                                   
                                  //exécution de la requête:
                                  $result = $bdd->query($sql); 
                                  
                                  //affichage des données:
                                  While($donnees = $result->fetch(PDO::FETCH_ASSOC))
                                  {
                                  ?>
                                  
                                  <form name="insertion" action="modification3.php" method="POST">
                                    <input type="hidden" name="id" value="<?php echo($id) ;?>">
                                    <table border="0" cellspacing="2" cellpadding="2">
                                      <tr>
                                        <td>Patient</td>
                                        <td><input type="text" name="pat" value="<?php echo $donnees['pat'] ;?>"></td>
                                      </tr>
                                      <tr>
                                        <td>Fiche</td>
                                        <td><input type="text" name="fic" value="<?php echo $donnees['fic'] ;?>"></td>
                                      </tr>
                                      <tr>
                                        <td>Question</td>
                                        <td><input type="text" name="que" value="<?php echo $donnees['que'] ;?>"></td>
                                      </tr>
                                      <tr>
                                        <td>Description</td>
                                        <td><input type="text" name="des" value="<?php echo $donnees['des'] ;?>"></td>
                                      </tr>
                                      <tr>
                                        <td>Détails</td>
                                        <td><input type="text" name="det" value="<?php echo $donnees['det'] ;?>"></td>
                                      </tr>
                                      <tr>
                                        <td>Corrections</td>
                                        <td><input type="text" name="cor" value="<?php echo $donnees['cor'] ;?>"></td>
                                      </tr>
                                      <tr>
                                        <td>Non récupérable</td>
                                        <td><input type="number" name="non_rec" value="<?php echo $donnees['non_rec'] ;?>"></td>
                                      </tr>
                                      <tr>
                                        <td>Commentaires</td>
                                        <td><input type="text" name="com" value="<?php echo $donnees['com'] ;?>"></td>
                                      </tr>
                                    <?php
                                    }//fin if 
                                    ?>
                                      <tr>
                                        <td colspan="2"><input type="submit" value="modifier"></td>
                                      </tr>
                                    </table>
                                  </form>
                                  
                                  
                                  </body>
                                  </html>

                                  modification3.php

                                  <?php
                                  //connection au serveur
                                  try
                                  {
                                  // On se connecte à MySQL
                                  $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                  }
                                  catch(Exception $e)
                                  {
                                  // En cas d'erreur, on affiche un message et on arrête tout
                                  die('Erreur : '.$e->getMessage());
                                  }
                                   
                                  $nb = count($_POST['id']);
                                  
                                  //préparation de la requête
                                  $requete = "UPDATE gbd_dat SET 
                                  		pat = :patient,
                                  		fic = :fiche,
                                  		que = :question,
                                  		des = :description,
                                  		det = :details,
                                  		cor = :correction,
                                  		non_rec = :nonrecuperable,
                                  		com = :commentaires
                                  		WHERE id IN (:id) ";
                                  
                                  /* On prépare la requête à son exécution. Les marqueurs seront identifiés */
                                  $result = $bdd->prepare($requete);
                                  
                                  //print_r($bdd->errorInfo());
                                  $result->bindValue('id',$id,PDO::PARAM_INT);
                                  $result->bindValue('patient',$patient,PDO::PARAM_STR);
                                  $result->bindValue('fiche',$fiche,PDO::PARAM_STR);
                                  $result->bindValue('question',$question,PDO::PARAM_STR);
                                  $result->bindValue('description',$description,PDO::PARAM_STR);
                                  $result->bindValue('details',$details,PDO::PARAM_STR);
                                  $result->bindValue('correction',$correction,PDO::PARAM_STR);
                                  $result->bindValue('nonrecuperable',$nonrecuperable,PDO::PARAM_INT);
                                  $result->bindValue('commentaires',$commentaires,PDO::PARAM_STR);
                                  
                                  for($i=0;$i<$nb;$i++)
                                     {
                                  		$patient=$_POST['pat'][$i];
                                  		$fiche=$_POST['fic'][$i];
                                  		$question=$_POST['que'][$i];
                                  		$description=$_POST['des'][$i];		
                                  		$details=$_POST['det'][$i];
                                  		$correction=$_POST['cor'][$i];
                                  		$nonrecuperable=$_POST['non_rec'][$i];
                                  		$commentaires=$_POST['com'][$i];		
                                  		$id=$_POST['id'][$i];
                                  		$result->execute();
                                      }
                                  
                                  //exécution de la requête SQL:
                                  //$requete = $bdd->query($sql);
                                  
                                   
                                  //affichage des résultats, pour savoir si la modification a marchée:
                                  if($requete)
                                  {
                                      echo("La modification à été correctement effectuée") ;
                                  }
                                  else
                                  {
                                      echo("La modification à échouée") ;
                                  }
                                  ?>







                                  -
                                  Edité par djé22 17 novembre 2017 à 15:53:38

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    17 novembre 2017 à 15:56:00

                                    Tout tes inputs ont le même nom, il faut les appeler par exemple id[] au lieu de id
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      17 novembre 2017 à 16:05:41

                                      là:

                                      ce n'est pas :

                                      <input type="text" name="pat" value="<?php echo $donnees['pat'] ;?>">

                                      mais

                                      <input type="text" name="pat[]" value="<?php echo $donnees['pat'] ;?>">

                                      et ce pour tous les input

                                      ++


                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        17 novembre 2017 à 16:25:47

                                        ok, merci je progresse...

                                        je n'ai plus de message d'erreur et j'arrive à updater ma base... pour le premier enregistrement uniquement...

                                        je vais essayer de mieux comprendre ce code (notamment les indices)

                                        merci+++

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          17 novembre 2017 à 16:31:01

                                          Je ne pense pas que tu puisses utiliser bindValue ici, il ne doit pas être réévalué au moment de l'execute. D'où l'utilisation de bindParam.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            17 novembre 2017 à 17:19:02

                                            effectivement je n'ai plus de bugg mais c'est comme si les variables n'étaient pas ré-évaluées car seul le premier enregistrement de ma boucle est modifié

                                            -
                                            Edité par djé22 17 novembre 2017 à 17:25:37

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              17 novembre 2017 à 17:38:42

                                              oui mais quand je regarde le code, je ne vois pas comment çà peut boucler...

                                              d'ailleurs, si je fais un var_dump sur les variables, je n'ai que le premier enregistrement qui passe... si je comprends bien

                                              il faudrait un foreach ou un while non ?

                                              EDIT

                                              bon, je vois le problème

                                              en fait, $nb = 1 pcq je fais un $nb=count($_POST['id']) qui compte sur le implode donc =1

                                              -
                                              Edité par djé22 17 novembre 2017 à 18:07:31

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                17 novembre 2017 à 18:43:54

                                                pffuufff...je commence à plus trop savoir...

                                                en gros j'arrive à faire des UPDATE multiples maintenant mais je doit avoir un problème d'id justement car çà ne modifie pas les bons enregistrement

                                                modification1.php

                                                <html>
                                                  <head>
                                                    <title>modification de données en PHP :: partie 1</title>
                                                  </head>
                                                <body>
                                                <?php
                                                
                                                session_start();
                                                //connection au serveur
                                                try
                                                {
                                                // On se connecte à MySQL
                                                $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                                }
                                                catch(Exception $e)
                                                {
                                                // En cas d'erreur, on affiche un message et on arrête tout
                                                die('Erreur : '.$e->getMessage());
                                                }
                                                 
                                                //requête SQL:
                                                //$sql = "SELECT * FROM gbd_dat ORDER BY pat, fic, que" ;
                                                $query = $bdd->prepare('SELECT * FROM gbd_dat ORDER BY pat, fic, que');
                                                $query->execute();
                                                
                                                //je récupère mes idéntifiants dans un array (vérifier en utilisant var_dump($array))
                                                //il faut que je transmette mon array() à la page modification2.php en utilisant $_SESSION (peut-être inutile de passer par un array avant SESSION
                                                //car SESSION est déjà un array ?)
                                                $id = $query->fetchAll(PDO::FETCH_COLUMN,0);
                                                //exécution de la requête:
                                                //$result = $bdd->query($sql); 
                                                
                                                $_SESSION['id'] = $id;
                                                $nb = 10;
                                                
                                                //var_dump($array);
                                                $query->closeCursor();
                                                
                                                $query = $bdd->prepare('SELECT * FROM gbd_dat ORDER BY pat, fic, que LIMIT :nb');
                                                $query->bindValue('nb', $nb, PDO::PARAM_INT);
                                                $query->execute();
                                                //affichage des données:
                                                while ($donnees = $query->fetch(PDO::FETCH_ASSOC))
                                                {
                                                echo(
                                                "<div>"
                                                .$donnees['pat']." ".$donnees['fic']
                                                ."
                                                </div>\n"
                                                ) ;
                                                }
                                                ?>
                                                <a href="modification2.php">modifier</a>
                                                </body>
                                                </html>

                                                modification2.php

                                                <html>
                                                  <head>
                                                    <meta charset="utf-8" />
                                                    <link rel="stylesheet" href="style.css" />
                                                    <title>modification de données en PHP :: partie2</title>
                                                  </head>
                                                <body>
                                                
                                                <?php
                                                session_start();
                                                //connection au serveur
                                                try
                                                {
                                                // On se connecte à MySQL
                                                $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                                }
                                                catch(Exception $e)
                                                {
                                                // En cas d'erreur, on affiche un message et on arrête tout
                                                die('Erreur : '.$e->getMessage());
                                                }
                                                 
                                                 
                                                //récupération de la variable d'URL,
                                                //qui va nous permettre de savoir quel enregistrement modifier
                                                //$id  = $_GET["idPersonne"] ;
                                                //$id = $_SESSION['array'];
                                                $id = implode(',',$_SESSION['id']);
                                                $nb = 10;
                                                //je récupère bien mes id dans $id (=array) sous la forme d'une chaine des id avec l'implode
                                                //var_dump($id);
                                                
                                                //requête SQL:
                                                //$sql = "SELECT * FROM gbd_dat WHERE id IN (".$id.") LIMIT :nb" ;
                                                //$result = $bdd->query($sql); 
                                                $query = $bdd->prepare('SELECT * FROM gbd_dat ORDER BY pat, fic, que LIMIT :nb');
                                                $query->bindValue('nb', $nb, PDO::PARAM_INT);
                                                $query->execute();
                                                
                                                //affichage des données:
                                                
                                                echo '<tr class="class01">';
                                                //echo '<td class="ID">#ID</td>';
                                                echo '<td class="Patient">Patient</td>';
                                                echo '<td class="Fiche">Fiche</td>';
                                                echo '<td class="Question">Question</td>';
                                                echo '<td class="Description">Description</td>';
                                                echo '<td class="Details">Details</td>';
                                                echo '<td class="Correction">Corrections</td>';
                                                echo '<td class="NR">NR</td>';
                                                echo '<td class="Commentaires">Commentaires</td>';
                                                
                                                While($donnees = $query->fetch(PDO::FETCH_ASSOC))
                                                {
                                                ?>
                                                
                                                <form name="insertion" action="modification3.php" method="POST">
                                                  <input type="hidden" name="id" value="<?php echo($id) ;?>">
                                                  <input type="hidden" name="nb" value="<?php echo($nb) ;?>">
                                                  <table border="0" cellspacing="2" cellpadding="2">
                                                    <tr>
                                                      <td><input type="text" name="pat[]" value="<?php echo $donnees['pat'] ;?>"></td>
                                                      <td><input type="text" name="fic[]" value="<?php echo $donnees['fic'] ;?>"></td>
                                                      <td><input type="text" name="que[]" value="<?php echo $donnees['que'] ;?>"></td>
                                                      <td><input type="text" name="des[]" value="<?php echo $donnees['des'] ;?>"></td>
                                                      <td><input type="text" name="det[]" value="<?php echo $donnees['det'] ;?>"></td>
                                                      <td><input type="text" name="cor[]" value="<?php echo $donnees['cor'] ;?>"></td>
                                                      <td><input type="number" name="non_rec[]" value="<?php echo $donnees['non_rec'] ;?>"></td>
                                                      <td><input type="text" name="com[]" value="<?php echo $donnees['com'] ;?>"></td>
                                                    </tr>
                                                  <?php
                                                  }//fin if 
                                                  ?>
                                                    <tr>
                                                      <td colspan="2"><input type="submit" value="modifier"></td>
                                                    </tr>
                                                  </table>
                                                </form>
                                                
                                                
                                                </body>
                                                </html>

                                                modification3.php

                                                <?php
                                                //connection au serveur
                                                try
                                                {
                                                // On se connecte à MySQL
                                                $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                                }
                                                catch(Exception $e)
                                                {
                                                // En cas d'erreur, on affiche un message et on arrête tout
                                                die('Erreur : '.$e->getMessage());
                                                }
                                                 
                                                //$nb = count($_POST['id']);
                                                $nb = $_POST['nb'];
                                                
                                                //préparation de la requête
                                                $requete = "UPDATE gbd_dat SET 
                                                		pat = :patient,
                                                		fic = :fiche,
                                                		que = :question,
                                                		des = :description,
                                                		det = :details,
                                                		cor = :correction,
                                                		non_rec = :nonrecuperable,
                                                		com = :commentaires
                                                		WHERE id = :id ";
                                                
                                                /* On prépare la requête à son exécution. Les marqueurs seront identifiés */
                                                $result = $bdd->prepare($requete);
                                                
                                                //print_r($bdd->errorInfo());
                                                $result->bindParam('id',$id,PDO::PARAM_INT);
                                                $result->bindParam('patient',$patient,PDO::PARAM_STR);
                                                $result->bindParam('fiche',$fiche,PDO::PARAM_STR);
                                                $result->bindParam('question',$question,PDO::PARAM_STR);
                                                $result->bindParam('description',$description,PDO::PARAM_STR);
                                                $result->bindParam('details',$details,PDO::PARAM_STR);
                                                $result->bindParam('correction',$correction,PDO::PARAM_STR);
                                                $result->bindParam('nonrecuperable',$nonrecuperable,PDO::PARAM_INT);
                                                $result->bindParam('commentaires',$commentaires,PDO::PARAM_STR);
                                                
                                                for($i=0;$i<$nb;$i++)
                                                   {
                                                		$patient=$_POST['pat'][$i];
                                                		$fiche=$_POST['fic'][$i];
                                                		$question=$_POST['que'][$i];
                                                		$description=$_POST['des'][$i];		
                                                		$details=$_POST['det'][$i];
                                                		$correction=$_POST['cor'][$i];
                                                		$nonrecuperable=$_POST['non_rec'][$i];
                                                		$commentaires=$_POST['com'][$i];		
                                                		$id=$_POST['id'][$i];
                                                    	$result->execute();
                                                    	var_dump($patient);
                                                	}
                                                //$i=1;
                                                //var_dump($i);
                                                //var_dump($nb);
                                                //while($i<$nb)
                                                //{
                                                //		$patient=$_POST['pat'][$i];
                                                //		$fiche=$_POST['fic'][$i];
                                                //		$question=$_POST['que'][$i];
                                                //		$description=$_POST['des'][$i];		
                                                //		$details=$_POST['det'][$i];
                                                //		$correction=$_POST['cor'][$i];
                                                //		$nonrecuperable=$_POST['non_rec'][$i];
                                                //		$commentaires=$_POST['com'][$i];		
                                                //		$id=$_POST['id'][$i];
                                                //    	$result->execute();
                                                //    	var_dump($patient);
                                                //    	$i++;	
                                                //}
                                                //exécution de la requête SQL:
                                                //$requete = $bdd->query($sql);
                                                
                                                 
                                                //affichage des résultats, pour savoir si la modification a marchée:
                                                if($requete)
                                                {
                                                    echo("La modification à été correctement effectuée") ;
                                                }
                                                else
                                                {
                                                    echo("La modification à échouée") ;
                                                }
                                                ?>






                                                -
                                                Edité par djé22 17 novembre 2017 à 18:51:13

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  17 novembre 2017 à 21:00:41

                                                  you're a king !

                                                  çà marche, thanks !!!!

                                                  je vais pouvoir l'adapter maintenant ; )

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    18 novembre 2017 à 19:14:25

                                                    bonsoir,

                                                    me revoilà, toujours avec mes problèmes de mise à jour...

                                                    donc j'ai réussi à mettre en place l'update multiple et je veux donc le mettre en place sur mon projet.

                                                    j'ai scrupuleusement (enfin sans doute pas...) suivi l'algo d'hier mais rien en se passe lorsque je clique sur modifier pour envoyer l'update

                                                    la page dms_modification3.php ne se lance pas et donc pas d'update

                                                    j'ai vérifié le nom de la page, des variables, etc... et je ne vois pas où j'ai fait l'erreur...

                                                    d'avance merci pour votre aide

                                                    dms_modification2.php

                                                    <?php
                                                    // On démarre la session AVANT d'écrire du code HTML
                                                    session_start();
                                                    
                                                    ?>
                                                    
                                                    
                                                    <!DOCTYPE html>
                                                    
                                                    <html>
                                                    
                                                        <head>
                                                    
                                                            <meta charset="utf-8" />
                                                            <link rel="stylesheet" href="style.css" />
                                                            <title>Mereva</title>
                                                    
                                                        </head>
                                                    
                                                        <body>
                                                            
                                                            <!--début du bloc page-->
                                                            <div id="page">
                                                    
                                                                <!-- En-tête -->
                                                                <div class="element_page"> 
                                                                    <?php include("entete.php"); ?>
                                                                </div>
                                                    
                                                                <!-- Le corps --> 
                                                                <div class="element_page">
                                                                    <div id="corps">
                                                                        
                                                                        <?php include("menus.php"); ?>
                                                                        <!--Tableau avec le contenu de la table GBD_DAT-->
                                                                                    
                                                                        <div id='element_tableau'>
                                                    	                    <div id="tableau">
                                                    
                                                    							<?php
                                                    
                                                    							//*******************************************************************
                                                    							//affichage page par page tutoriel Ymox sur le site Zeste de Savoir
                                                    							//https://zestedesavoir.com/tutoriels/351/paginer-avec-php-et-mysql/
                                                    
                                                    							//*******************************************************************
                                                    							
                                                    
                                                    							//*Connexion à la base de données
                                                    		                    //*OpenCLassroom "Concevez votre site web avec php et MySql"  
                                                    		                    try
                                                    							{
                                                    							// On se connecte à MySQL
                                                    							$bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                                    							}
                                                    							catch(Exception $e)
                                                    							{
                                                    							// En cas d'erreur, on affiche un message et on arrête tout
                                                    							die('Erreur : '.$e->getMessage());
                                                    							}
                                                    
                                                    							$limite = 10;
                                                    							$page = (!empty($_GET['page']) ? $_GET['page'] : 1);
                                                    							$debut = ($page - 1) * $limite;
                                                    
                                                    
                                                    							// Partie "Requête"
                                                    							/* On calcule donc le numéro du premier enregistrement ; SQL_CALC_FOUND_ROWS compte le nombre d'enregistrements*/
                                                    							/*sans tenir compte du critère limit*/
                                                    							$sql = 'SELECT SQL_CALC_FOUND_ROWS * FROM `gbd_dat1` LIMIT :limite OFFSET :debut';
                                                    							$query = ($sql);
                                                    							/* On prépare la requête à son exécution. Les marqueurs seront identifiés */
                                                    							$query = $bdd->prepare($query);
                                                    							/* On lie ici une valeur à la requête, soit remplacer de manière sûre un marqueur par sa valeur, nécessaire pour que la requête fonctionne. */
                                                    							$query->bindValue(
                                                    							'limite',         // Le marqueur est nommé « limite »
                                                    							$limite,         // Il doit prendre la valeur de la variable $limite
                                                    							PDO::PARAM_INT   // Cette valeur est de type entier
                                                    							);
                                                    							$query->bindValue(
                                                    							'debut',         // Le marqueur est nommé « début »
                                                    							$debut,         // Il doit prendre la valeur de la variable $debut
                                                    							PDO::PARAM_INT   // Cette valeur est de type entier
                                                    							);
                                                    
                                                    							/* Maintenant qu'on a lié la valeur à la requête, on peut l'exécuter pour en récupérer le résultat */
                                                    							$resultSet = $query->execute();
                                                    
                                                    							/* Ici on récupère le nombre d'éléments total. Comme c'est une requête, il ne
                                                    							* faut pas oublier qu'on ne récupère pas directement le nombre.
                                                    							* De plus, comme la requête ne contient aucune donnée client pour fonctionner,
                                                    							* on peut l'exécuter ainsi directement */
                                                    							$resultFoundRows = $bdd->query('SELECT found_rows()');
                                                    							/* On doit extraire le nombre du jeu de résultat */
                                                    							$nombredElementsTotal = $resultFoundRows->fetchColumn();
                                                    
                                                    							// début du tableau
                                                    							echo '<table>'."\n";
                                                    							// première ligne on affiche les titres prénom et surnom dans 2 colonnes
                                                    							echo '<tr class="class01">';
                                                    							echo '<td class="ID">#ID</td>';
                                                    							echo '<td class="Patient">Patient</td>';
                                                    							echo '<td class="Fiche">Fiche</td>';
                                                    							echo '<td class="Question">Question</td>';
                                                    							echo '<td class="Description">Description</td>';
                                                    							echo '<td class="Details">Details</td>';
                                                    							echo '<td class="Correction">Corrections</td>';
                                                    							echo '<td class="NR">NR</td>';
                                                    							echo '<td class="Commentaires">Commentaires</td>';
                                                    							echo '</tr>';
                                                    							echo '</table>'."\n";
                                                    							// Partie "Boucle"
                                                    							// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
                                                    							while($element= $query -> fetch()) 
                                                    							{
                                                    								?>
                                                    								<form id="insertion" name="insertion" action="dms_modification3.php" method="POST">
                                                    								  <input type="hidden" name="limite" value="<?php echo($limite) ;?>">
                                                    								  <table>
                                                    								    <tr class="class02">
                                                    								      <td class="ID"><input class="id" type="text" name="id[]" value="<?php echo $element['id'] ;?>"></td>
                                                    								      <td class="Patient"><input class="pat" type="text" name="pat[]" value="<?php echo $element['pat'] ;?>"></td>
                                                    								      <td class="Fiche"><input class="fic" type="text" name="fic[]" value="<?php echo $element['fic'] ;?>"></td>
                                                    								      <td class="Question"><input class="que" type="text" name="que[]" value="<?php echo $element['que'] ;?>"></td>
                                                    								      <td class="Description"><input class="des" type="text" name="des[]" value="<?php echo $element['des'] ;?>"></td>
                                                    								      <td class="Details"><input class="det" type="text" name="det[]" value="<?php echo $element['det'] ;?>"></td>
                                                    								      <td class="Corrections"><input class="cor" type="text" name="cor[]" value="<?php echo $element['cor'] ;?>"></td>
                                                    								      <td class="NR"><input class="non_rec" type="number" name="non_rec[]" value="<?php echo $element['non_rec'] ;?>"></td>
                                                    								      <td class="Commentaires"><input class="com" type="text" name="com[]" value="<?php echo $element['com'] ;?>"></td>
                                                    								    </tr>
                                                    								    
                                                    								<?php
                                                    							}//fin while 
                                                    						?>
                                                    								  </table>
                                                    								</form>
                                                    						
                                                    						<!--fin du bloc tableau-->  
                                                    						</div>
                                                    	                        
                                                    
                                                    
                                                                        <!--fin du bloc element_tableau-->
                                                                        </div>
                                                    
                                                                        <div>
                                                    					<input class="modifier" type="submit" value="modifier">
                                                    					</div>
                                                    	                    <?php
                                                    	                    $query->closeCursor();
                                                    	                    ?>
                                                                    <!--fin du bloc corps-->
                                                                    </div>
                                                    
                                                                <!--fin du bloc element_page correspondant au CORPS-->
                                                                </div>
                                                    
                                                                <div class="element_page">
                                                    	            <!--// Partie "Filtres"-->
                                                    				<div id='filtres'>
                                                    				    <form action="demande_de_corrections_page_filtres.php" method="get">
                                                                        <select onselect="this.form.submit()" name="patient" id="patient">
                                                                        <?php
                                                                        $sql="SELECT DISTINCT pat, fic FROM gbd_dat1 ORDER BY pat";
                                                                        $result = $bdd->query($sql); 
                                                                        while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
                                                                        {
                                                                        ?>
                                                                        <option value="<?php echo $element['pat'];?>"><?php echo $donnees['pat'];?></option>
                                                                        <?php
                                                                        }
                                                                        ?>
                                                                        </select>
                                                                        <select onselect="this.form.submit()" name="fiche" id="fiche">
                                                                        <?php
                                                                        $sql="SELECT DISTINCT pat, fic FROM gbd_dat1 ORDER BY pat";
                                                                        $result = $bdd->query($sql);
                                                                        while ($donnees = $result->fetch(PDO::FETCH_ASSOC))
                                                                        {
                                                                        ?>
                                                                        <option value="<?php echo $donnees['fic'];?>"><?php echo $donnees['fic'];?></option>
                                                                        <?php
                                                                        }
                                                                        ?>
                                                                        </select>
                                                    				    <input class="valider" type="submit" value="Valider" />                             
                                                    			        </form> 
                                                    			    </div>
                                                    
                                                    			     <!--// Partie "Liens"-->
                                                    			    
                                                    				<div id='liens'>
                                                    
                                                    				    <?php
                                                    					/* On calcule le nombre de pages */
                                                    					$nombreDePages = ceil($nombredElementsTotal / $limite);
                                                    
                                                    
                                                    
                                                    					/* Si on est sur la première page, on n'a pas besoin d'afficher de lien
                                                    					* vers la précédente. On va donc l'afficher que si on est sur une autre
                                                    					* page que la première */
                                                    					if ($page > 1):
                                                    					?><a href="?page=<?php echo $page - 1; ?>">Précédente</a> - <?php
                                                    					endif;
                                                    
                                                    					/* On va effectuer une boucle autant de fois que l'on a de pages */
                                                    					for ($i = 1; $i <= $nombreDePages; $i++):
                                                    					?><a href="?page=<?php echo $i; ?>"><?php echo $i; ?></a> <?php
                                                    					endfor;
                                                    
                                                    					/* Avec le nombre total de pages, on peut aussi masquer le lien
                                                    					* vers la page suivante quand on est sur la dernière */
                                                    					if ($page < $nombreDePages):
                                                    					?>- <a href="?page=<?php echo $page + 1; ?>">Suivante</a><?php
                                                    					endif;
                                                    					?>         
                                                    		        </div> 
                                                    		    </div>
                                                    
                                                                <!-- Le pied de page -->
                                                                <div class="element_page"> 
                                                                <div id="pied_de_page"/>
                                                                <?php include("pied_de_page.php"); ?>
                                                                </div>
                                                                </div> 
                                                    
                                                            <!--fin du bloc page-->
                                                            </div>
                                                        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
                                                        <!-- jQuery est inclus ! -->
                                                       <script>
                                                    
                                                            jQuery(document).ready(function(){
                                                            // Du code en jQuery va pouvoir être tapé ici !
                                                            console.log("jQuery est prêt !");
                                                    		});
                                                    
                                                    
                                                    		
                                                    
                                                       </script>
                                                        </body>
                                                    
                                                    </html>

                                                    dms_modification3.php

                                                    <?php
                                                    //connection au serveur
                                                    try
                                                    {
                                                    // On se connecte à MySQL
                                                    $bdd = new PDO('mysql:host=localhost;dbname=dms;charset=utf8', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
                                                    }
                                                    catch(Exception $e)
                                                    {
                                                    // En cas d'erreur, on affiche un message et on arrête tout
                                                    die('Erreur : '.$e->getMessage());
                                                    }
                                                     
                                                    //$nb = count($_POST['id']);
                                                    $limite = $_POST['limite'];
                                                    
                                                    //préparation de la requête
                                                    $requete = "UPDATE gbd_dat1 SET 
                                                    		pat = :patient,
                                                    		fic = :fiche,
                                                    		que = :question,
                                                    		des = :description,
                                                    		det = :details,
                                                    		cor = :correction,
                                                    		non_rec = :nonrecuperable,
                                                    		com = :commentaires
                                                    		WHERE id = :id ";
                                                    
                                                    /* On prépare la requête à son exécution. Les marqueurs seront identifiés */
                                                    $result = $bdd->prepare($requete);
                                                    
                                                    //print_r($bdd->errorInfo());
                                                    $result->bindParam('id',$id,PDO::PARAM_INT);
                                                    $result->bindParam('patient',$patient,PDO::PARAM_STR);
                                                    $result->bindParam('fiche',$fiche,PDO::PARAM_STR);
                                                    $result->bindParam('question',$question,PDO::PARAM_STR);
                                                    $result->bindParam('description',$description,PDO::PARAM_STR);
                                                    $result->bindParam('details',$details,PDO::PARAM_STR);
                                                    $result->bindParam('correction',$correction,PDO::PARAM_STR);
                                                    $result->bindParam('nonrecuperable',$nonrecuperable,PDO::PARAM_INT);
                                                    $result->bindParam('commentaires',$commentaires,PDO::PARAM_STR);
                                                    
                                                    for($i=0;$i<$limite;$i++)
                                                       {
                                                    		$patient=$_POST['pat'][$i];
                                                    		$fiche=$_POST['fic'][$i];
                                                    		$question=$_POST['que'][$i];
                                                    		$description=$_POST['des'][$i];		
                                                    		$details=$_POST['det'][$i];
                                                    		$correction=$_POST['cor'][$i];
                                                    		$nonrecuperable=$_POST['non_rec'][$i];
                                                    		$commentaires=$_POST['com'][$i];		
                                                    		$id=$_POST['id'][$i];
                                                        	$result->execute();
                                                        	//var_dump($patient);
                                                    	}
                                                     
                                                    //affichage des résultats, pour savoir si la modification a marchée:
                                                    if($requete)
                                                    {
                                                        echo("La modification à été correctement effectuée") ;
                                                    }
                                                    else
                                                    {
                                                        echo("La modification à échouée") ;
                                                    }
                                                    ?>




                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Update multiples en PHP

                                                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                    • Editeur
                                                    • Markdown