Partage
  • Partager sur Facebook
  • Partager sur Twitter

Requete Mysql & PHP

    14 novembre 2017 à 7:28:41

    Bonjour,

    J'ai un formulaire avec à un moment un choix à faire dans une liste, cette liste est extraite d'une table mysql et s'affiche correctement sur dans ma page web.

    Exemple :

    'MOD bla bla'

    'MOD blo blo'

    'MOD bli bli'

    Mais lorsque j'essaie de faire un insert de ce choix dans ma base, c'est tronqué, ça ne m'integre que 'MOD' dans la base mysql.

    Ci dessous le code (il n'est pas propre je sais, dans un premier temps je cherche la fonctionnalité désirée ensuite je fignolerais ...)

    Ligne 171 "modèle a appliquer"

    Index.php

    <?php
    $servername = "localhost";
    $username = "root";
    $password = "root";
    $dbname = "cau";
    
    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    
    
    ?>
    
    <!DOCTYPE html>
    <html >
    <head>
      <meta charset="UTF-8">
      <title>Creation Automatique des Utilisateurs</title>
      <!--
      <script src="https://s.codepen.io/assets/libs/modernizr.js" type="text/javascript"></script>
      -->
    
      
    	<link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css'>
    	<link rel='stylesheet prefetch' href='http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css'>
    	<link rel='stylesheet prefetch' href='http://cdnjs.cloudflare.com/ajax/libs/jquery.bootstrapvalidator/0.5.0/css/bootstrapValidator.min.css'>
    	<link rel="stylesheet" href="https://formden.com/static/cdn/font-awesome/4.4.0/css/font-awesome.min.css" />
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/css/bootstrap-datepicker3.css"/>
        <link rel="stylesheet" href="css/style.css">
    	
      
    </head>
    
    <body>
      <div class="container">
        <form class="well form-horizontal" action="formulaire.php" method="post"  id="contact_form">
    <fieldset>
    
    <!-- Form Name -->
    
    <H2><center>Creation Automatique des Utilisateurs<center><br></H2>
    
    <!-- Email Manager -->
    
    <div class="form-group">
      <label class="col-md-4 control-label">Email du manager</label>  
      <div class="col-md-4 inputGroupContainer">
      <div class="input-group">
      <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
      <input  name="emailmanager" placeholder="Email" class="form-control"  type="text">
        </div>
      </div>
    </div>
    <!-- Prenom -->
    
    <div class="form-group">
      <label class="col-md-4 control-label">Prénom</label>  
      <div class="col-md-4 inputGroupContainer">
      <div class="input-group">
      <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
      <input  name="prenom" placeholder="Prénom" class="form-control"  type="text">
        </div>
      </div>
    </div>
    
    <!-- Nom -->
    
    <div class="form-group">
      <label class="col-md-4 control-label">Nom</label> 
        <div class="col-md-4 inputGroupContainer">
        <div class="input-group">
      <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
      <input name="nom" placeholder="Nom" class="form-control"  type="text">
        </div>
      </div>
    </div>
    
    <!-- Société -->
    
    <div class="form-group">
      <label class="col-md-4 control-label">Société</label>  
      <div class="col-md-4 inputGroupContainer">
      <div class="input-group">
      <span class="input-group-addon"><i class="glyphicon glyphicon-home"></i></span>
      <input  name="societe" placeholder="Société" class="form-control"  type="text">
        </div>
      </div>
    </div>
    
    <!-- Type contrat -->
    
    <div class="form-group"> 
      <label class="col-md-4 control-label">Type de contrat</label>
        <div class="col-md-4 selectContainer">
        <div class="input-group">
            <span class="input-group-addon"><i class="glyphicon glyphicon-list"></i></span>
        <select name="contrat" class="form-control selectpicker" >
          <option value=" " >Selectionner le contrat</option>
          <option>Stagiaire</option>
          <option>Prestataire</option>
          <option >CDD</option>
          <option >CDI</option>
        </select>
      </div>
    </div>
    </div>
    
     <!-- Date -->
    
    <div class="form-group">
      <label class="col-md-4 control-label">Date d'arrivée du collaborateur</label>  
      <div class="col-md-4 inputGroupContainer">
      <div class="input-group">
      <span class="input-group-addon"><i class="fa fa-calendar-check-o"></i></span>
      <input  name="dateentree" placeholder="DD/MM/YYYY" class="form-control datepicker"  type="text">
        </div>
      </div>
    </div>
    
    <div class="form-group">
      <label class="col-md-4 control-label">Date de depart du collaborateur</label>  
      <div class="col-md-4 inputGroupContainer">
      <div class="input-group">
      <span class="input-group-addon"><i class="fa fa-calendar-check-o"></i></span>
      <input  name="datesortie" placeholder="DD/MM/YYYY" class="form-control datepicker"  type="text">
        </div>
      </div>
    </div>
    
    
    
         
     
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <script src="https://npmcdn.com/tether@1.2.4/dist/js/tether.min.js"></script>
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.5/js/bootstrap.min.js"></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/js/bootstrap-datepicker.min.js"></script>   
        <script src="bootstrap-datepicker.fr.min.js"></script>
    	
    	<script>
           $('.datepicker').datepicker({
    		format: 'dd/mm/yyyy',
    		weekStart: '1'
    		});
        </script>
    
    	
    	
    <!-- Modele compte
    <div class="form-group"> 
      <label class="col-md-4 control-label">Modèle de compte à appliquer</label>
        <div class="col-md-4 selectContainer">
        <div class="input-group">
            <span class="input-group-addon"><i class="glyphicon glyphicon-list"></i></span>
        <select name="state" class="form-control selectpicker" >
          <option value=" " >Selectionner le modèle</option>
          <option>Modele 1</option>
          <option>Modele 2</option>
          <option >Modele 3</option>
          <option >Modele 4</option>
          <option >Modele 5</option>
        </select>
      </div>
    </div>
    </div>
     -->
     
    <div class="form-group"> 
      <label class="col-md-4 control-label">Modèle de compte à appliquer</label>
        <div class="col-md-4 selectContainer">
        <div class="input-group">
            <span class="input-group-addon"><i class="glyphicon glyphicon-list"></i></span>
        <select name="modele" class="form-control selectpicker" >
    		<option>	
    		<?php
    		$query = "SELECT * FROM modeles";
    		$result = $conn->query($query);
    		
    		if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
    	    echo "<option value=" .$row['nommodele']. ">" .$row['nommodele']. "</option>";	
        }
    } else {
        echo "0 results";
    }
    $conn->close();
    		?>
    		</option>		
        </select>
      </div>
    </div>
    </div>
    
    
    
    <!-- Commentaires 					
    <div class="form-group">
      <label class="col-md-4 control-label">Commentaires</label>
        <div class="col-md-4 inputGroupContainer">
        <div class="input-group">
            <span class="input-group-addon"><i class="glyphicon glyphicon-pencil"></i></span>
            	<textarea class="form-control" name="comment" placeholder="Commentaires"></textarea>
      </div>
      </div>
    </div>
    -->
    
    <!-- Success message 
    <div class="alert alert-success" role="alert" id="success_message">Success <i class="glyphicon glyphicon-thumbs-up"></i> Thanks for contacting us, we will get back to you shortly.</div>
    -->
    
    <!-- Button -->
    <div class="form-group"><center>
      <label class="col-md-4 control-label"></label>
      <div class="col-md-4">
        <button type="submit" class="btn btn-warning" >Envoyer la demande <span class="glyphicon glyphicon-send"></span></button>
      </div></center>
    </div>
    
    </fieldset>
    </form>
    </div>
        </div><!-- /.container -->
      <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
    <script src='http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js'></script>
    <script src='http://cdnjs.cloudflare.com/ajax/libs/bootstrap-validator/0.4.5/js/bootstrapvalidator.min.js'></script>
    
        <script  src="js/index.js"></script>
    
    </body>
    </html>
    Formulaire.php
    
    <?php
    require 'connection.php';
    $conn    = Connect();
    $emailmanager = $conn->real_escape_string($_POST['emailmanager']);
    $nom    = $conn->real_escape_string($_POST['nom']);
    $prenom   = $conn->real_escape_string($_POST['prenom']);
    $contrat   = $conn->real_escape_string($_POST['contrat']);
    $societe   = $conn->real_escape_string($_POST['societe']);
    $dateentree   = $conn->real_escape_string($_POST['dateentree']);
    $datesortie   = $conn->real_escape_string($_POST['datesortie']);
    $modele = $conn->real_escape_string($_POST['modele']);
    $query   = "INSERT into utilisateurs (emailmanager,nom,prenom,contrat,societe,dateentree,datesortie,modele) VALUES ('" . $emailmanager . "','" . $nom . "','" . $prenom . "','" . $contrat . "','" . $societe . "','" . $dateentree . "','" . $datesortie . "','" . $modele . "')";
    
    $success = $conn->query($query);
    
    if (!$success) {
        die("Couldn't enter data: ".$conn->error);
    
    }
    var_dump( $_POST );
    echo "Votre demande de creation de compte a ete enregistree <br>";
    $conn->close();
    
    ?>

    -
    Edité par Ryukyumugen 14 novembre 2017 à 7:44:02

    • Partager sur Facebook
    • Partager sur Twitter
      14 novembre 2017 à 8:34:52

      Tu as fait un echo $query pour voir la requête effective?
      • Partager sur Facebook
      • Partager sur Twitter
        14 novembre 2017 à 8:37:00

        Salut,

        Ne serait-ce pas un espaceou un caractère spécial dans variable $row['nommodele'] du value qui pose problème ? Pourquoi ne pas mettre l'id du modèle (plus sûr) ?

        -
        Edité par elyppire 14 novembre 2017 à 8:37:15

        • Partager sur Facebook
        • Partager sur Twitter
        Retrouvez-moi aussi sur Zeste de SavoirTutoriel WAMP • Nouvelle F.A.Q. PHP
          14 novembre 2017 à 8:41:45

          Oui ça aussi mais on sera fixé avec l'echo de la requête

          -
          Edité par refschool 14 novembre 2017 à 8:42:26

          • Partager sur Facebook
          • Partager sur Twitter
            14 novembre 2017 à 8:49:47

            Bonjour, 

            Essayes de regarder la taille allouée à ce champs dans ta base de données pour voir si ce n'est pas de là que vient le problème.

            Regardes également pour utiliser des requêtes paramétrées.

            Bon courage

            • Partager sur Facebook
            • Partager sur Twitter
              14 novembre 2017 à 8:52:09

              Tu pourrais faire un export de la structure de la table concernée s'il te plaît ?

              • Partager sur Facebook
              • Partager sur Twitter
                14 novembre 2017 à 9:15:48

                Bonjour,

                On dirait que tu n'as pas examiné le code html généré. Pour moi, il doit manquer des quotes autour de tes valeurs.

                Ligne 185 :

                     echo '<option value="'.$row['nommodele'].'">' .$row['nommodele'].'</option>';  



                -
                Edité par philodick 14 novembre 2017 à 9:18:09

                • Partager sur Facebook
                • Partager sur Twitter
                  14 novembre 2017 à 9:30:49

                  L'affichage de la query :

                  INSERT into utilisateurs (emailmanager,nom,prenom,contrat,societe,dateentree,datesortie,modele) VALUES ('bla@bla.fr','aaaa','aaa','Stagiaire','qq','27/11/2017','30/11/2017','MOD')


                  Alors qu'il devrait interpreter 'MOD' en 'MOD bla bla'

                  elyppire a écrit:

                  Salut,

                  Ne serait-ce pas un espaceou un caractère spécial dans variable $row['nommodele'] du value qui pose problème ? Pourquoi ne pas mettre l'id du modèle (plus sûr) ?

                  -
                  Edité par elyppire il y a environ 3 heures

                  Exactement il y a plusieurs espaces dans $row['nommodele']

                  -
                  Edité par Ryukyumugen 14 novembre 2017 à 12:05:22

                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 novembre 2017 à 12:05:21

                    Ok comme dit par philodick, il doit y avoir des guillemets en trop, fait un CTRL + U pour voir la source de ton fichier
                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 novembre 2017 à 12:18:25

                      <div class="form-group"> 
                        <label class="col-md-4 control-label">Modèle de compte à appliquer</label>
                          <div class="col-md-4 selectContainer">
                          <div class="input-group">
                              <span class="input-group-addon"><i class="glyphicon glyphicon-list"></i></span>
                          <select name="modele" class="form-control selectpicker" >
                      		<option>	
                      		<option value=MOD Numero 1>MOD Numero 1</option><option value=MOD Numero 2>MOD Numero 2</option><option value=MOD Numero 3>MOD Numero 3</option><option value=MOD Numero 4>MOD Numero 4</option><option value=MOD Numero 5>MOD Numero 5</option>		</option>		
                          </select>
                        </div>
                      </div>
                      </div>
                      • Partager sur Facebook
                      • Partager sur Twitter
                        14 novembre 2017 à 12:23:02

                        C'est bien cela, il manque des guillemets autour de value en les backslashant.

                        Je te mettrai bien le code mais l'éditeur markdown d'OC est tout cassé...

                        -
                        Edité par elyppire 14 novembre 2017 à 12:24:47

                        • Partager sur Facebook
                        • Partager sur Twitter
                        Retrouvez-moi aussi sur Zeste de SavoirTutoriel WAMP • Nouvelle F.A.Q. PHP
                          14 novembre 2017 à 12:25:35

                          elyppire a écrit:

                          C'est bien cela, il manque des guillemets autour de value :

                          echo "&lt;option value="\&amp;quot;&amp;quot;" .=""&gt;"</option>


                          pas tres lisible, je comprend pas :)
                          • Partager sur Facebook
                          • Partager sur Twitter
                            14 novembre 2017 à 12:56:49

                            Il faut mettre TOUTES les valeurs d'attributs de balises HTML entre guillemets " => <option value="TOTO">

                            Là on est sur une base du langage XML (donc HTML)

                            ++

                            -
                            Edité par christouphe 14 novembre 2017 à 12:57:05

                            • Partager sur Facebook
                            • Partager sur Twitter
                              14 novembre 2017 à 12:59:55

                              ça l'est deja je ne comprends pas :/

                              echo "<option value=" .$row['nommodele']. ">" .$row['nommodele']. "</option>";



                              -
                              Edité par Ryukyumugen 14 novembre 2017 à 13:00:16

                              • Partager sur Facebook
                              • Partager sur Twitter
                                14 novembre 2017 à 13:06:56

                                Alors revois les cours ;)

                                (avant que quelqu'un s'empresse de te l'expliquer en 2/2 ^^

                                Ce sera plus utile (=> concaténation)

                                Edit: en plus ce doit être des quote ' au lieu de guillements "

                                <?php
                                    echo '<option value="' .$row['nommodele']. '">' .$row['nommodele']. '</option>';



                                -
                                Edité par christouphe 14 novembre 2017 à 13:08:01

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  14 novembre 2017 à 16:13:53

                                  Tu pourrais être un peu attentif quand même, je t'ai mis la solution ce matin...

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

                                    Alors comme je peux pas mettre +100, je poste :D

                                    -
                                    Edité par christouphe 14 novembre 2017 à 16:17:15

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

                                      christouphe a écrit:

                                      Alors revois les cours ;)

                                      (avant que quelqu'un s'empresse de te l'expliquer en 2/2 ^^

                                      Ce sera plus utile (=> concaténation)

                                      Edit: en plus ce doit être des quote ' au lieu de guillements "

                                      <?php
                                          echo '<option value="' .$row['nommodele']. '">' .$row['nommodele']. '</option>';

                                      Effectivement ça marche ! Merci, i lfaut que je revois ça ;)

                                      philodick a écrit:

                                      Tu pourrais être un peu attentif quand même, je t'ai mis la solution ce matin...



                                      -
                                      Edité par christouphe il y a environ 4 heures



                                      J’étais passé à coté, ça arrive o_O
                                      Merci de l'aide !
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        14 novembre 2017 à 20:40:02

                                        Ryukyumugen a écrit:

                                        J’étais passé à coté, ça arrive o_O
                                        Merci de l'aide !


                                        Allez +1 pour l'effort
                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Requete Mysql & 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