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

EL.marwaa123 99 Messages postés jeudi 24 avril 2014Date d'inscription 7 juin 2014 Dernière intervention - 13 mai 2014 à 22:25 - Dernière réponse : EL.marwaa123 99 Messages postés jeudi 24 avril 2014Date d'inscription 7 juin 2014 Dernière intervention
- 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 

4 réponses

Répondre au sujet
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 21 avril 2018 Dernière intervention - 14 mai 2014 à 15:34
+1
Utile
1
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 &&
Cette réponse vous a-t-elle aidé ?  
EL.marwaa123 99 Messages postés jeudi 24 avril 2014Date d'inscription 7 juin 2014 Dernière intervention - 14 mai 2014 à 17:22
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
beschtraffer 16 Messages postés dimanche 11 mars 2007Date d'inscription 22 mai 2014 Dernière intervention - 14 mai 2014 à 14:14
0
Utile
1
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 99 Messages postés jeudi 24 avril 2014Date d'inscription 7 juin 2014 Dernière intervention - 14 mai 2014 à 14:26
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.