MySQL & PHP

Résolu
Bonjour à tous, je fais appel à la communauté car depuis plusieurs un problème me tracasse. J'ai en effet regardé sur les divers topics mais n'ai pas réussi à résoudre mon problème.

Je suis entrain de réaliser un site de gestion d'une base de données. Ainsi l'ajout d'un client dois être possible. Je récupère mes données dans un formulaire puis j’essaye de faire un INSERT dans ma table client. J'ai l'impression que lorsque j'appuie sur le bouton de validation, les choses se passent comme il faut, mais en vérifiant sur phpMyAdmin, rien. Je vous laisse donc mon morceau de code en espérant que vous puissiez m'aider.

Merci d'avance ! :)
//le formulaire
<form method="post" action="ajout_client.php">
<p align="left"> </p>
<p align="left"><span>Nom : </span>
  <input name="nom" type="text"/>
  <span>Prenom : </span>
  <input name="prenom" type="text"/>
</p>
<blockquote>
  <blockquote>
    <blockquote>
      <blockquote>
        <p align="right"><span> Id type activite : </span>
            <input name="id_activity" type="text"/>
        </p>
      </blockquote>
    </blockquote>
  </blockquote>
</blockquote>
<p align="left"><span><span>Rue : </span>
      <input name="rue" type="text"/>
</span> </p>
<blockquote>
  <blockquote>
    <blockquote>
      <blockquote>
        <p align="right"><span>Id_usine : </span>
            <input name="id_usine" type="text"/>
        </p>
      </blockquote>
    </blockquote>
  </blockquote>
</blockquote>
<p align="left"><span>Ville : </span>
    <input name="ville" type="text"/>
    <span>Code postal : </span>
    <input name="cp" type="text"/>
</p>
<blockquote>
  <blockquote>
    <blockquote>
      <blockquote>
        <p align="right"><span>Id pays  :
          <input name="id_pays" type="text"/>
        </span></p>
      </blockquote>
    </blockquote>
  </blockquote>
</blockquote>
<p><span>Tel : </span>
    <input name="tel" type="text"/>
    <span>Email : </span>
    <input name="email" type"email"/>
</p>
<blockquote>
  <blockquote>
    <blockquote>
      <blockquote>
        <p align="right"><span>Id commercial : </span>
            <input name="id_com" type="text"/>
        </p>
      </blockquote>
    </blockquote>
  </blockquote>
</blockquote>
<p> </p>
<input name="create_client" type="submit" value="Créer le client" />
</form>

//la requète d'insertion
$req2 = $bdd->query("INSERT INTO client(id_type_activite, id_usine, id_pays, id_commercial, nom_client, prenom_client, adresse_ville_client, adresse_rue_client, adresse_code_postal_client, telephone_client, email_client) VALUES('".$activity."','".$usine."','".$pays."','".$comm."','".$nom."','".$prenom."','".$ville."','".$rue."','".$cp."','".$tel."','".$mail."'')");


Avant de faire la requête SQL je stock les valeurs $_POST dans des variable $activity par exemple.

4 réponses

  1. Contributeur
    Tu as examiné la valeur de $req2 après l'appel?
    1. La requête est dans un try catch (si jamais ça peut aider).
      J'ai essayé de faire un echo de $req2 mais sans succès.
    2. @yg_beLe var_dump ne donne rien non plus. Cela me parait étrange quand même
  2. Bonjour

    Je ne sais pas ce que fait ce try -catch que tu ne nous as pas montré, mais j'ai l'impression de voir une apostrophe en trop :
    $mail."'')");
    1. En effet il y en avait une en trop, mais ça n'a malheureusement rien changé
      Voici le try catch en question:
      try
      {
      //la requète d'insertion
      $req2 = $bdd->query("INSERT INTO client(id_type_activite, id_usine, id_pays, id_commercial, nom_client, prenom_client, adresse_ville_client, adresse_rue_client, adresse_code_postal_client, telephone_client, email_client) VALUES('".$activity."','".$usine."','".$pays."','".$comm."','".$nom."','".$prenom."','".$ville."','".$rue."','".$cp."','".$tel."','".$mail."')");
      }
      catch(Exception $e)
      {
      	die('Erreur : '.$e->getMessage());
      }
      
  3. Contributeur
    Au lieu de
    $req2 = $bdd->query("INSERT INTO client(id_type_activite, id_usine, id_pays, id_commercial, nom_client, prenom_client, adresse_ville_client, adresse_rue_client, adresse_code_postal_client, telephone_client, email_client) VALUES('".$activity."','".$usine."','".$pays."','".$comm."','".$nom."','".$prenom."','".$ville."','".$rue."','".$cp."','".$tel."','".$mail."'')");
    Tu pourrais faire :
    $sqlreq = "INSERT INTO client(id_type_activite, id_usine, id_pays, id_commercial, nom_client, prenom_client, adresse_ville_client, adresse_rue_client, adresse_code_postal_client, telephone_client, email_client) VALUES('".$activity."','".$usine."','".$pays."','".$comm."','".$nom."','".$prenom."','".$ville."','".$rue."','".$cp."','".$tel."','".$mail."'')";
    echo $sqlreq;
    $req2 = $bdd->query($sqlreq);
    Cela te permettrait de tester sur phpMyAdmin la requête exacte, telle que tu la prépares.
    1. Je vais essayer ça merci
  4. Si le try-catch n'avait pas signalé d'erreur, c'est probablement que la requête n'est pas du tout exécutée.
    Je pense que le echo que yg_be te fait faire ne va rien afficher du tout.
    1. Autre petit détail au passage :
      <input name="email" type"email"/>

      Il manque un = entre type et email.
      Ce qui n'a bien sûr aucun rapport avec ton erreur.
    2. En effet cela ne donne rien, Il y aurait-il des raisons évidente pour que la requête ne s’exécute pas ?
    3. @ViciousJokerOui, un "if" précédent qui n'est pas satisfait.
      Mais il faut voir tout le code qui précède.
    4. Contributeur
      echo $sqlreq;
      ne te donne rien?
      Et
      echo "sqllreq: $sqlreq";
      non plus? On dirait donc que cette partie de ton code PHP n'est pas exécutée.
      Tu pourrais tenter de comprendre pourquoi en ajoutant des echo pour suivre l'exécution du code.
    5. @yg_beNon, puisque cette partie du code n'est pas exécutée. Sinon, le try-catch aurait signalé l'erreur dans la requête.