Salut j'ai un problème avec insert into

Fermé
mourad - Modifié le 8 oct. 2018 à 11:47
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 9 oct. 2018 à 15:44
Bonjour,


$pseudo=$_POST['pseudo'];
$motdepasse =$_POST['mot_de_passe'];
$poste=$_POST['poste'];

session_start();
if(isset($_POST['ajouter'])) { // si le bouton "ajouter" est appuyé
    // on vérifie que le champ "Pseudo" n'est pas vide
    // empty vérifie à la fois si le champ est vide et si le champ existe belle et bien (is set)
    if(empty($_POST['pseudo'])) {
        echo "Le champ Pseudo est vide.";
  
    } else {
        // on vérifie maintenant si le champ "Mot de passe" n'est pas vide"
        if(empty($_POST['mot_de_passe'])) {
            echo "Le champ Mot de passe est vide.";
        } else { 
  
  if(empty($_POST['poste'])) {
            echo "Le champ poste est vide.";
        } else {
       
            //on se connecte à la base de données:
            $mysqli = mysqli_connect("localhost", "root", "", "gestionstock");
        
            //on vérifie que la connexion s'effectue correctement:
            if(!$mysqli){
                echo "Erreur de connexion à la base de données.";
    
            } else {
     
    mysqli_query($mysqli,"SELECT * FROM utilisateurs");
                 $Requet = " INSERT INTO `utilisateurs` (``, `pseudo`, `mot_de_passe`, `poste`) VALUES('','$pseudo','$motdepasse','$poste')"; 
                 
       // on insère les informations du formulaire dans la table 
                            
       $result=mysqli_query($mysqli, $Requet); 
    
       // on insère les informations du formulaire dans la table 
                            
   
                 if($result)
   {
     echo 'enregistrer';
    
   } else 
    {
     echo 'non enregistrer';
    }
               // on affiche le résultat  
     
      header('location: listeutilisateur.php');
               
      
                 }
            }
        }
    }
}


EDIT : Ajout des balises de code

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
8 oct. 2018 à 11:53
Bonjour,

1 - Lorsque tu postes du code sur le forum, merci de le faire en utilisant LES BALISES DE CODE.
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

2 - Il faut "gérer" les éventuelles erreurs dans ton code..
En mysqli, tu peux utiliser, par exemple,
$result = mysqli_query($mysqli, $Requet);  
if (!$result) {
    printf("Erreur lors de l'insertion : %s\n", mysqli_error($mysqli));
   exit();
}

Et pour finir, ta requête ne doit pas être bonne... le champ ' ' ne correspond à rien.
Tu dois écrire :
  $Requet = " INSERT INTO `utilisateurs` (`pseudo`, `mot_de_passe`, `poste`) VALUES('$pseudo','$motdepasse','$poste')"; 


Au passage
 header('location: listeutilisateur.php');
exit(); // toujours mettre un exit après une redirection




0
jean jim Messages postés 412 Date d'inscription vendredi 14 mars 2008 Statut Membre Dernière intervention 9 octobre 2018 22
Modifié le 9 oct. 2018 à 15:05
 
$mysqli = mysqli_connect("localhost", "root", "", "gestionstock");
$Requet = $mysqli->prepare('
INSERT INTO utilisateurs
 (idUtilisateur, pseudo, mot_de_passe, poste) 
VALUES(NUll ,:pseudo,:motDePasse,:poste');
 $Requet->execute(array(
            'pseudo'=>$pseudo,
            'motDePasse'=>$motdepasse,
            'poste'=>$poste
    ));


le champs vide dois a mon avis correspondre a un id pour la table qui doit être et en clef primaire et en autoIncremente mais comme elle n'est pas appelé dans la requête inutile de renseigner ce champ


si c'est le cas le code ci dessus et le bon avec des variable :PDO qui vont avec (si tu dois mettre NULL les ' ' ne servent a rien)
-1
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 717
9 oct. 2018 à 15:44
Bonjour,
Donc toi tu mélanges du mysqli objet et du mysqli procédurale ?
Et tu mélanges le PDO et le mysqli ?

Joli.... (ou pas...) mais surtout ... non fonctionnel....
0