Problemes d'insertion de données dans une base de donnée
Résolu/Fermé
A voir également:
- Problemes d'insertion de données dans une base de donnée
- Reinstaller windows sans perte de données - Guide
- Effacer les données de navigation - Guide
- Désolé l'utilisation de la base de données a expiré epic games - Forum Jeux vidéo
- Tnt base de données vide - Forum TNT / Satellite / Réception
- Excel reporter des données sur une autre feuille avec conditions - Forum Excel
16 réponses
Utilisateur anonyme
3 juin 2014 à 13:56
3 juin 2014 à 13:56
Pas d'autre message d'erreur ? Alors essaye :
$res1=mysql_query($sql1) or die (mysql_error()); pour avoir une idée du problème
Ta requête $sql2 est incorrecte : elle enchaîne un select sur un insert, supprime la partie select
$res1=mysql_query($sql1) or die (mysql_error()); pour avoir une idée du problème
Ta requête $sql2 est incorrecte : elle enchaîne un select sur un insert, supprime la partie select
Utilisateur anonyme
4 juin 2014 à 08:13
4 juin 2014 à 08:13
As-tu mis le "or die(mysql_error())" aussi à l'exécution de la deuxième requête ?
As-tu bien supprimé la deuxième partie de cette deuxième requête comme je te l'ai déjà dit ?
As-tu bien supprimé la deuxième partie de cette deuxième requête comme je te l'ai déjà dit ?
Utilisateur anonyme
4 juin 2014 à 13:36
4 juin 2014 à 13:36
Il faut utiliser les sessions.
Normalement, dans ta table des utilisateurs, tu devrais avoir un champ autoincrémenté qui te sert de clé primaire et qu'on appelle en général id.
Lorsque le visiteur a bien été reconnu, tu dois mémoriser cet 'id' dans une variable de session pour t'en servir ensuite pour identifier ton visiteur dans les autres pages.
Renseigne-toi sur les sessions. Grosso modo, en php :
- il faut faire session_start(); au début du script, AVANT L'ENVOI DE DONNÉES. Et il faut le faire pour TOUTES LES PAGES.
- pour enregistrer une variable, il faut la mettre dans le tableau $_SESSION, par exemple $_SESSION['id']=$id, mais $_SESSION['machin']=$id; est tout aussi légal
- dans une autre page, la tableau $_SESSION est conservé, contrairement à toutes les autres variables qui n'existent plus puisqu'à chaque fois c'est un nouveau script qui démarre. Tu peux donc faire $id=$_SESSION['id']. Ayant récupérer l'id, tu peux retrouver toutes les informations sur ce visiteur dans ta base.
Note que tu peux conserver ainsi toutes les informations que tu juges bon de conserver d'une page sur l'autre.
Normalement, dans ta table des utilisateurs, tu devrais avoir un champ autoincrémenté qui te sert de clé primaire et qu'on appelle en général id.
Lorsque le visiteur a bien été reconnu, tu dois mémoriser cet 'id' dans une variable de session pour t'en servir ensuite pour identifier ton visiteur dans les autres pages.
Renseigne-toi sur les sessions. Grosso modo, en php :
- il faut faire session_start(); au début du script, AVANT L'ENVOI DE DONNÉES. Et il faut le faire pour TOUTES LES PAGES.
- pour enregistrer une variable, il faut la mettre dans le tableau $_SESSION, par exemple $_SESSION['id']=$id, mais $_SESSION['machin']=$id; est tout aussi légal
- dans une autre page, la tableau $_SESSION est conservé, contrairement à toutes les autres variables qui n'existent plus puisqu'à chaque fois c'est un nouveau script qui démarre. Tu peux donc faire $id=$_SESSION['id']. Ayant récupérer l'id, tu peux retrouver toutes les informations sur ce visiteur dans ta base.
Note que tu peux conserver ainsi toutes les informations que tu juges bon de conserver d'une page sur l'autre.
Utilisateur anonyme
3 juin 2014 à 13:35
3 juin 2014 à 13:35
Bonjour
Tes mysql_fetch_array n'ont aucun sens : mysql_fetch_array sert à récupérer le résultat d'une requête SELECT. Toi tu fais des INSERT, il n'y a aucun résultat à récupérer. Supprime ces lignes tout simplement.
Tes mysql_fetch_array n'ont aucun sens : mysql_fetch_array sert à récupérer le résultat d'une requête SELECT. Toi tu fais des INSERT, il n'y a aucun résultat à récupérer. Supprime ces lignes tout simplement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
alors maintenant, la table commande se remplit mais la table contenir j'dois avoir une erreur dans la requete je pense
alors, j'ai un peu changé mon script, maintenant, il faut que j'arrive a recuperer 2 id (de la table utilisateurs et services) existant dans la bdd et les insérer dans une autre table (commander) voila mon nouveau script :
<?php
session_start();
$date=$_POST['date'];
$service=$_POST['service'];
$fourniture=$_POST['fourniture'];
$quantite=$_POST['quantite'];
//connexion à Mysql
$idconnexion=mysql_connect('localhost','root','') or die("Désolé, connexion impossible au serveur !");
//choix de la base de données
$bd1=mysql_select_db('gestioncommande') or die("Vous avez surement fait une erreur dans le nom de la base");
//ecriture requete 1
$sql1="Select * from utilisateurs where identifiant='$identifiant' and mdp='$mdp' ";
$res1=mysql_query($sql1);
mysql_fetch_array($res1);
$_SESSION['idUser'] = $res1['idUser'];
$id=$res1['idUser'];
//ecriture et execution de la requete 2
$sql2="insert into commandes (date, quantite, etat, idFourniture,idUser, idService) values ('$date',$quantite,'C', $fourniture, $id, $service)";
$res2=mysql_query($sql2) or die (mysql_error());
//deconnexion a la base de donnee
Mysql_Close($idconnexion);
?>
<?php
session_start();
$date=$_POST['date'];
$service=$_POST['service'];
$fourniture=$_POST['fourniture'];
$quantite=$_POST['quantite'];
//connexion à Mysql
$idconnexion=mysql_connect('localhost','root','') or die("Désolé, connexion impossible au serveur !");
//choix de la base de données
$bd1=mysql_select_db('gestioncommande') or die("Vous avez surement fait une erreur dans le nom de la base");
//ecriture requete 1
$sql1="Select * from utilisateurs where identifiant='$identifiant' and mdp='$mdp' ";
$res1=mysql_query($sql1);
mysql_fetch_array($res1);
$_SESSION['idUser'] = $res1['idUser'];
$id=$res1['idUser'];
//ecriture et execution de la requete 2
$sql2="insert into commandes (date, quantite, etat, idFourniture,idUser, idService) values ('$date',$quantite,'C', $fourniture, $id, $service)";
$res2=mysql_query($sql2) or die (mysql_error());
//deconnexion a la base de donnee
Mysql_Close($idconnexion);
?>
et voici le nouveau message d'erreur :
Notice: Undefined variable: identifiant in C:\xampp\htdocs\projet stage\traitementcommande.php on line 12
Notice: Undefined variable: mdp in C:\xampp\htdocs\projet stage\traitementcommande.php on line 12
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1)' at line 1
Notice: Undefined variable: identifiant in C:\xampp\htdocs\projet stage\traitementcommande.php on line 12
Notice: Undefined variable: mdp in C:\xampp\htdocs\projet stage\traitementcommande.php on line 12
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 1)' at line 1
Utilisateur anonyme
4 juin 2014 à 11:38
4 juin 2014 à 11:38
Comprends-tu ce que signifie : "Undefined variable: identifiant" ?
Utilisateur anonyme
4 juin 2014 à 11:48
4 juin 2014 à 11:48
Bravo !
Alors il faut la définir, car PHP ne va pas deviner ce que tu aimerais qu'elle vaille.
Et à mon avis, tu vas très vite avoir le même problème avec $mdp.
Alors il faut la définir, car PHP ne va pas deviner ce que tu aimerais qu'elle vaille.
Et à mon avis, tu vas très vite avoir le même problème avec $mdp.
oui, je sais, mais je veux justement un moyen pour récuperer mon identifiant et mdp qui avait deja été initialisé lors de la connection de l'utilisateur.
je m'explique : je dois faire une application qui doit permettre de gerer les commandes de fournitures.
l'utilisateur commence donc par se connecter, puis, effectue sa commande. et je veux insérer dans la table commandes l'id de l'utilisateur qui a passé la commande, donc celui qui est connecté.
je m'explique : je dois faire une application qui doit permettre de gerer les commandes de fournitures.
l'utilisateur commence donc par se connecter, puis, effectue sa commande. et je veux insérer dans la table commandes l'id de l'utilisateur qui a passé la commande, donc celui qui est connecté.