Récupérer le résultat d'une requete sql [Résolu]

Messages postés
99
Date d'inscription
jeudi 24 avril 2014
Dernière intervention
7 juin 2014
- - Dernière réponse : EL.marwaa123
Messages postés
99
Date d'inscription
jeudi 24 avril 2014
Dernière intervention
7 juin 2014
- 14 mai 2014 à 17:22
Bonjour,
j'ai un probleme concerant la récupération d'une valeur en sql,j'ai un formulaire qui permet de créer les modules et ses seuils,j'ai une table module et une autre qui s'appelle département et une table qui contient les clés primaires du module et département. ce que je suis entrain de faire c'est que j'insére le module et le seuil aprés je fais un select pour récuperer id de ce module,et une autre select pour récuperer id de département saisie puis j'utilise insert into la table des clés pour associer le module au département.mon prob c'est la récupération de id de departement et module.j'éspere que c'est clair voila mon code:
$br=$_POST['br'];
$ann=$_POST['ann'];
$modu=$_POST['modu'];
$seuil=$_POST['seuil'];
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("basepfe")or die('Pas de Base de donn\351');
if(isset($_POST['creer'])){
  if ($modu&&$seuil&&$br){
$sql=mysql_query("INSERT  INTO  module VALUES ('','$modu','$seuil')");
$sqlm=mysql_query("select idM from module where nomM=$modu");
$req=mysql_result($sqlm);
$dep=mysql_query("select idD from departement where nomD='$br' && annee='$ann'");
$req1=mysql_result($dep);
$sql1=mysql_query("INSERT  INTO contenir  VALUES ('$req','$1')");
echo "<script> alert('la compte a été bien créer')</script>";
								}
                else echo "<script>alert('Remplir tous les champs svp !')</script>";
}

pouvez vous m'aider svp ?merci d'avance
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
24081
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 janvier 2019
2144
1
Merci
Bonjour,

Si ce que tu souhaites faire c'est :
Ajouter des données dans ta table
Récupérer l' ID (auto incrémenté ) qui en résult
Puis l'utiliser pour une autre insertion ..etc...

Nul besoin de refaire des SELECT ....

Il existe : mysql_insert_id
http://php.net/manual/fr/function.mysql-insert-id.php


$sql = "INSERT  INTO  module 
          VALUES (
            '$modu'
            ,'$seuil')";

// Le temps des tests :
// Affichage de la requête pour s'assurer qu'elle est bonne
echo "<br>REQUETE = ".$sql." <br>";

//Execution de la requête :
$req=mysql_query($sql);

// Récupération de l'ID nouvellement créé par l' INSERT
$newID = mysql_insert_id();


// Le reste de ton code...
$sql2 = "select idD 
            from departement 
              where nomD='$br' 
              AND  annee='$ann'";
$dep=mysql_query($sql2);
$req1=mysql_result($dep);

$sql3 = "INSERT  INTO contenir 
            VALUES ('$newID','$req1')";
$sql1=mysql_query($sql3);




NB : Le premier champ des tes VALUES étant, je suppose, le champ correspondant à la colonne ID ... vu qu'il est autoincrémenté.. tu n'as pas à le mettre.. C'est ta BDD qui s'en occupe automatiquement.

NB2 : Comme tu peux le voir... je sépare la requête de son execution.
cela permet en cas de besoin de faire un ECHO et de voir si elle correspond à tes attentes.
Je fais également des retours à la ligne... également pour une question de lisibilité.

NB3 : Le ET dans les requêtes SQL.. c'est avec le mot AND et non &&

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

EL.marwaa123
Messages postés
99
Date d'inscription
jeudi 24 avril 2014
Dernière intervention
7 juin 2014
-
mercii bcp pour ces explications.
pour la derniere Nb: j'ai essayé avec AND et il ne fonctionne pas mais lorsque j'ai utilisé && elle a fonctionné.
merci bcpp
Commenter la réponse de jordane45
Messages postés
16
Date d'inscription
dimanche 11 mars 2007
Dernière intervention
22 mai 2014
14
0
Merci
Bonjour,


D'abord, ligne 14, la deuxième variable devrait être $req1 plutôt que $1 je pense:
$sql1=mysql_query("INSERT  INTO contenir  VALUES ('$req','$req1')");
A mon avis, ça devrait mieux fonctionner après.


Deuxième chose, plus générale, il faut absolument éviter d'insérer directement une variable POST dans une base de données, c'est la source d'énormément de problèmes de sécurité. Je vous suggère de regarder du côté de fonctions comme mysql_real_escape_string par exemple, ou les expressions régulières pour fiabiliser les données entrantes.
EL.marwaa123
Messages postés
99
Date d'inscription
jeudi 24 avril 2014
Dernière intervention
7 juin 2014
-
ok mercii bcp
Commenter la réponse de beschtraffer

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.