EL.marwaa123
Messages postés99Date d'inscriptionjeudi 24 avril 2014StatutMembreDernière intervention 7 juin 2014
-
13 mai 2014 à 22:25
EL.marwaa123
Messages postés99Date d'inscriptionjeudi 24 avril 2014StatutMembreDerniè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
A voir également:
Sql server concaténer plusieurs lignes dans un seul champ
jordane45
Messages postés37534Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention 6 juin 2023341 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...
$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 &&
EL.marwaa123
Messages postés99Date d'inscriptionjeudi 24 avril 2014StatutMembreDerniè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
beschtraffer
Messages postés16Date d'inscriptiondimanche 11 mars 2007StatutMembreDernière intervention22 mai 201423 14 mai 2014 à 14:14
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és99Date d'inscriptionjeudi 24 avril 2014StatutMembreDernière intervention 7 juin 2014 14 mai 2014 à 14:26
14 mai 2014 à 17:22
pour la derniere Nb: j'ai essayé avec AND et il ne fonctionne pas mais lorsque j'ai utilisé && elle a fonctionné.
merci bcpp