Problème insertion données formulaire

Fermé
Marchons85 Messages postés 3 Date d'inscription lundi 20 juin 2022 Statut Membre Dernière intervention 22 juin 2022 - Modifié le 21 juin 2022 à 17:06
Marchons85 Messages postés 3 Date d'inscription lundi 20 juin 2022 Statut Membre Dernière intervention 22 juin 2022 - 22 juin 2022 à 16:28
Bonjour
Jai fais mon code formulaire insertion ("insertionDonnees.php") vers la base de données j'utilise un autre code pour integrer mon formulaire a la base de donnees ("ConnexionOjet.php") mais quand je complète le formulaire il me dis erreur au niveua de


"1366Incorrect Integer value: 'AA' for column 'id_client' at row 1" mais je ne comprends pourriez vous m'aider sil vous plait

connexionObjet.php :
<?php
 function connexionObjet($base,$param)
 {
  include_once($param.".inc.php");
  $idcom=new mysqli(HOST,USER,PASS,$base,PORT);
  if(!$idcom)
  {
   echo "<script type=text/javascript>";
   echo "alert('Connexion impossible a la base')</script>";
   exit();
  }
  return $idcom;
 }
?>

insertionDonnees.php :
<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8" />
  <title>BD-PHP</title>
  <style type="text/css">
 table {border-style:double; border-width:3px; border-color:red; background-color: yellow;} 
 </style>
 </head>
 
 
<body>
 <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="application/x-www-form-urlencoded">
 <fieldset>
  <legend><b>Vos coordonnees</b></legend>
  <table>
   <tr><td>Nom : </td><td><input type="text" name="nom" size="40" maxlength="30"/></td></tr>
   <tr><td>Prenom : </td><td><input type="text" name="prenom" size="40" maxlength="30"/></td></tr>
   <tr><td>Age : </td><td><input type="text" name="age" size="40" maxlength="2"/></td></tr>
   <tr><td>Adresse : </td><td><input type="text" name="adresse" size="40" maxlength="60"/></td></tr>
   <tr><td>Ville : </td><td><input type="text" name="ville" size="40" maxlength="40"/></td></tr>
   <tr><td>E-mail : </td><td><input type="text" name="mail" size="40" maxlength="50"/></td></tr>
   <tr>
    <td><input type="reset" value="Effacer"></td>
    <td><input type="submit" value="Envoyer"></td>
   </tr>
   </table>
   </fieldset>
   </form>




   <?php
   include_once("connexionObjet.php");
   $idcom = connexionObjet("magasin","myparam");
   if(!empty($_POST['nom']) && !empty($_POST['adresse']) && !empty($_POST['ville']))
   {    
    $id_client="\N";
    $nom=$idcom->escape_string($_POST['nom']);
    $prenom=$idcom->escape_string($_POST['prenom']);
    $age=$idcom->escape_string($_POST['age']);
    $adresse=$idcom->escape_string($_POST['adresse']);
    $ville=$idcom->escape_string($_POST['ville']);
    $mail=$idcom->escape_string($_POST['mail']);
    $requete="INSERT INTO client VALUES('$id_client', '$nom', '$prenom', '$age', '$adresse', '$ville', '$mail')";
    $result=$idcom->query($requete);
    if(!$result)
    {
     echo $idcom->errno;
     echo $idcom->error;
     echo "<script type=\"text/javascript\">
      alert('Erreur : ".$idcom->error."')</script>";
    }
    else
    {
     echo "<script type=\"text/javascript\">
      alert('Vous etes enregistré. VOtre numero de client est : ".$idcom->insert_id."')</script>";
      
     $idcom->close();
    }
   }
   else { echo "<h3>Formulaire a completer !</h3>";}
   ?> 
</body>
</html>
A voir également:

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
21 juin 2022 à 17:12
Bonjour,

Lorsque tu fais un INSERT, il faut, soit mettre le champ id (autoincrémenté..) à null ... soit ne pas le mettre dans la requete.
Là.. ta variable $id_client .. tu lui mets une valeurs "texte" => "\N";

A la place, il faudrait plutôt écrire
 $id_client=null;


Mais dans l'idéal, ta requête devrait plutôt ressembler à :
 $requete="INSERT INTO client ( nom, prenom, age, adresse, ville , mail) VALUES ('$nom', '$prenom', '$age', '$adresse', '$ville', '$mail')";


Et dans un mode parfait .. tu devrais même utiliser les requetes préparées..
https://www.php.net/manual/fr/mysqli.prepare.php

.
2
patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023 125
22 juin 2022 à 10:09
Et dans un monde encore plus parfait, utiliser un ORM :D
0
Marchons85 Messages postés 3 Date d'inscription lundi 20 juin 2022 Statut Membre Dernière intervention 22 juin 2022 > patrice86 Messages postés 1378 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 26 novembre 2023
22 juin 2022 à 16:28
tu pense que ca serait mieux??
0
Marchons85 Messages postés 3 Date d'inscription lundi 20 juin 2022 Statut Membre Dernière intervention 22 juin 2022
22 juin 2022 à 16:26
Ah ok merci jordane je vais voir ceci
0