IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

dupliquer une ligne sql PDO


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut dupliquer une ligne sql PDO
    Salut, j'ai un problème avec une requète qui ne s'execute pas ,autrefois javais un bug undefined index j'ai alors rajouté des isset depuis ma fonction est comprise mais ne retourne ni une erreur php ni "l'erreur" que j'ai incrémenté dans la fonction duplicate outil.

    j'ai construit un bouton que j'ai lié a deux fonction ,le bouton ouvre un modal de confirmation pour dupliquer un outil ( quand j'aurai reglé mon problème de duplication je m'occuperai d'un nouveau modal qui demandera un nouveau num_serie et qui dupliquera l'outil avec ce nouveau num série ($l représente $liste=Outillage::findAllBynum_serie($t)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <div id="duplicate'.$l->__get("id").'" class="modal fade bs-exemple-modal-sm" tabinex="-1" role="dialog" aria-labelledby="mySmallModalLabel">
                    <div class="modal-dialog modal-sm">
                        <div class="modal-content">
                            <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                                <h4 class="modal-title" id="myModalLabel">Confirmation</h4>
                            </div>
                            <div class="modal-body">
                                <div class="input-group input-group-sm">
                                   <p>Etes-vous sûr de vouloir dupliquer cet outillage ?</p>
                                </div>
                            </div>
                            <div class="modal-footer">
                                <form method="post" action="Site.php?a=duplicateOutil" onsubmit="">
                                   <button type="button" class="btn btn-dault" data-dismiss="modal">Non</button>
                                   <input name="id" type="hidden" type="text" value="'.$l->__get("id").'">
                                   <input id="confirmer" type="submit" value="Oui" class="btn btn-primary">
                                </form>
                            </div>
                        </div>
                    </div>
                </div>

    ma fonction duplicate qui execute la requete sql de duplication d'outil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public function duplicate($id) {
    	    $c = base::getConnection();
    	    $query = $c->prepare ("INSERT INTO outillage(num_serie,id_art,article,id_doc,document,ilot,emplacement,liste_tubes) SELECT (:num_serie,:id_art,:article,:id_doc,:document,:ilot,:emplacement,:liste_tubes WHERE id=:id);");
            $query->bindParam(':id', $id,PDO::PARAM_INT);
            $query->bindParam(':id_art', $id_art,PDO::PARAM_INT);
    		$query->bindParam(':num_serie', $num_serie,PDO::PARAM_STR);
            $query->bindParam(':article', $article,PDO::PARAM_STR);
            $query->bindParam(':id_doc', $id_doc,PDO::PARAM_STR);
            $query->bindParam(':document', $document,PDO::PARAM_STR);
            $query->bindParam(':ilot', $ilot,PDO::PARAM_INT);
            $query->bindParam(':emplacement', $emplacement,PDO::PARAM_STR);
            $query->bindParam(':liste_tubes', $liste_tubes,PDO::PARAM_STR);
            $query->execute();
     
    	 }

    ma fonction duplicateOutil qui prend les valeurs posté dans un outil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public function duplicateOutil(){
         var_dump($_POST);
         $o=new outillage();
         $o =outillage::findById($_POST['id']);
         if (isset($_POST["id"])){
             if(isset($_POST["id_art"])){
                 if(isset($_POST["num_serie"])){
                     if(isset($_POST["article"])){
                         if(isset($_POST["id_doc"])){
                             if(isset($_POST["document"])){
                                 if(isset($_POST["ilot"])){
                                    if(isset($_POST["emplacement"])){
                                     if(isset($_POST["liste_tubes"])){
            $o->__set("id_art", $_POST["id_art"]);
    		$o->__set("num_serie", $_POST["num_serie"]);
            $o->__set("article", $_POST["art"]);
            $o->__set("id_doc", $_POST["id_doc"]);
            $o->__set("document", $_POST["doc"]);
            $o->__set("ilot", ilot::findAllByName($_POST["ilot"]));
            $o->__set("emplacement", $_POST["emplacement"]);
            $o->__set("liste_tubes", $_POST["tube"]);
            $o->insert();
              }
             }
            }
           }
          }
         }
        }
       }
      }else{
          print("erreur");
      }
     }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    et la question est .... ?

    N.B. isset() est assez pratique, et peut être utilisé de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         if ( isset($_POST["id"], $_POST["id_art"], $_POST["num_serie"], $_POST["article"],..........................) ){
    Par contre, est-ce la bonne méthode ici ?
    Tu ne fait que "masquer" le problème.

    "undefined index..." signifie que la variable n'est pas définie.
    Donc, il ne passera pas dans le if.

    Ce serait quand même plus judiceux de comprendre - et corriger - pourquoi la variable n'est effectivement pas définie, non ?

  3. #3
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    ah désolé en fait rien n'est envoyé a ma bdd, je ne comprend pas pourquoi je n'ai pas d'erreur et pourquoi de n'ai pas le doublon dans ma table .Du coup comment faire pour que cela fonctionne?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si tu parles de CE formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                                <form method="post" action="Site.php?a=duplicateOutil" onsubmit="">
                                   <button type="button" class="btn btn-dault" data-dismiss="modal">Non</button>
                                   <input name="id" type="hidden" type="text" value="'.$l->__get("id").'">
                                   <input id="confirmer" type="submit" value="Oui" class="btn btn-primary">
                                </form>
    Le seul $_POST est $_POST['id'].


    Sinon, merci d'être plus claire dans tes explications.

    Par exemple : où et comment est appelée la fonction duplicateOutil() ?

  5. #5
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    D'apres toi je devrai mettre un post pour chacune des données de mon array dans le button ? sinon pour la faire courte et claire des que je clique sur oui dans mon modal,j'ai page blanche sans erreur par contre j'ai mis un var dump qui me retourne uniquement l'id de mon array.

  6. #6
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Avril 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 26
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2017
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    ma fonction duplicateoutil est call avec Site.php?a=duplicateOutil

Discussions similaires

  1. Dupliquer une ligne
    Par Tyler Durden dans le forum SAS Base
    Réponses: 6
    Dernier message: 21/04/2010, 09h29
  2. Procedure pour dupliquer une ligne
    Par gdeon dans le forum PL/SQL
    Réponses: 3
    Dernier message: 15/01/2009, 20h52
  3. Dupliquer une ligne sauf un champ
    Par brassouille dans le forum PL/SQL
    Réponses: 7
    Dernier message: 09/12/2008, 15h13
  4. Comment dupliquer une ligne ?
    Par gspeed007 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 09/11/2008, 20h02
  5. Dupliquer une ligne
    Par khokho dans le forum Administration
    Réponses: 2
    Dernier message: 26/07/2007, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo