Problemes d'insertion de données dans une base de donnée

Résolu/Fermé
oliv27 - 3 juin 2014 à 13:03
 Utilisateur anonyme - 5 juin 2014 à 08:10
bonjours a tous ! alors, malgré mes recherches, je n'est pas trouver de solution a mon probleme. voici mon code :

<?php
session_start();
$date=$_POST['date'];
$service=$_POST['service'];
$fourniture=$_POST['fourniture'];
$quantite=$_POST['quantite'];
//$identifiant=$_SESSION['identifiant'] = $ligne['identifiant'];
//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 de la requete 1
$sql1="insert into commandes (idCommande, etat) values ('','C')";
$res1=mysql_query($sql1);
mysql_fetch_array($res1);
//ecriture de la requete 2
$sql2="insert into contenir (quantite, date) values('$quantite','$date')
select idCommande, idFourniture from commandes c fourniture f, contenir co where c.idCommande=co.idcommande and f.idFourniture=co.idFourniture";
$res2=mysql_query($sql2);
mysql_fetch_array($res2);
//deconnexion a la base de donnee
Mysql_Close($idconnexion);
//$_SESSION['identifiant'] = $ligne['identifiant'];
?>

et lorsque j'execute un teste, j'obtien ceci :

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\projet stage\traitementcommande.php on line 15

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\projet stage\traitementcommande.php on line 20

pouvez vous m'aider ? SVP ? merci d'avance

16 réponses

Utilisateur anonyme
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
1
Utilisateur anonyme
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 ?
1
Utilisateur anonyme
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.
1
Utilisateur anonyme
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
l'erreur a été supprimé mais rien n'a été inséré dans la base de donnée
0
alors toujours rien, aucune donnée dans la base
0
et de message d'erreur non plus
0
alors maintenant, la table commande se remplit mais la table contenir j'dois avoir une erreur dans la requete je pense
0
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);
?>
0
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
0
Utilisateur anonyme
4 juin 2014 à 11:38
Comprends-tu ce que signifie : "Undefined variable: identifiant" ?
0
la variable identifiant n'est pas défini ???
0
Utilisateur anonyme
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.
0
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é.
0
OK ! c'est bon !! probleme résolu !! merci beaucoup !! tu m'a beaucoup aider !!
0
Utilisateur anonyme
5 juin 2014 à 08:10
De rien :)
0
OK ! c'est bon !! probleme résolu !! merci beaucoup !! tu m'a beaucoup aider !!
0