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

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

2 réponses

jordane45 Messages postés 38222 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 23 juillet 2024 344
14 mai 2014 à 15:34
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 &&
1
EL.marwaa123 Messages postés 99 Date d'inscription jeudi 24 avril 2014 Statut Membre Dernière intervention 7 juin 2014
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
0
Rejoignez-nous