Récupérer le id inserer dans le même code de l'insertion possib

Résolu/Fermé
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 - Modifié par Nouvelle_Informaticienne le 25/04/2016 à 14:46
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 - 27 avril 2016 à 14:46
Bonjour,


s'il vous plait est il possible de recuperer par exemple le id d'un enregistrement qui vient d'etre inserer et ca dans meme code c'est a dire apres la requete insert je veux faire une requete select de id de l'elemenet inserer juste ci dessus ! ca marche pas avec mon code ! est il possible ou ca n'existe pas ! je vous remercie

// ca c'est la premiere requete insertion d un nouveau projet
$sql = "INSERT INTO fiche_prjprincipale (acronyme_FPP,duree_FPP,estimation_financ_FFP,technologie_val_FPP,application_FPP,contexte_FPP,descriptif_FPP,resultatsAtt_FPP)
VALUES ('$acronyme','$duree','$estimation','$technologie','$applications','$contexte','$descriptif','$resultats') " ;

$requete = mysqli_query($cnx,$sql) or die( mysqli_error($cnx) ) ;

if( $requete)

{

//2 eme requete si la 1er a bien passer alors je selectionne l id de l //enregistrement avec la condition qui marche pas : //acronyme_FPP=".$acronyme; psk il connai pas $acronyme !!

$sqll="SELECT id_FPP FROM fiche_prjprincipale WHERE acronyme_FPP=".$acronyme;

echo "<br> La requete est : ".$sqll."<br>";

$reque = mysqli_query($cnx,$sqll) or die( mysqli_error($cnx) ) ;

while ($row = mysqli_fetch_assoc($reque)) {
echo $row["id_FPP"];
$id=$row["id_FPP"];

foreach($responsables as $selectValue){

//la derniere requete pour inserer mon id que j ai recuperer dans une autre table
$reqq= "INSERT INTO fiche_part (id_FPP_fp) VALUES ('$id') " ;
$requ = mysqli_query($cnx,$rqq) or die( mysqli_error($cnx) ) ;

}}



je vous remercie je reste a votre disposition pour pluq d info sur mon code
il m affiche :



Le titre est aa la duree est 12
2
bien insere
La requete est : SELECT id_FPP FROM fiche_prjprincipale WHERE acronyme_FPP =a
Champ 'a' inconnu dans where clause

Il me fait pas l insertion de l id
aidez moi svp bonne journee
A voir également:

4 réponses

Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
Modifié par Xavierdu34 le 25/04/2016 à 15:00
Bonjour,

Il te suffit de faire une requête de ce type :

SELECT MAX(id) AS max_id FROM fiche_prjprincipale


juste après l'insertion ...

Cdlt.
1
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
25 avril 2016 à 15:17
Bonjour,

Le message d'erreur étant :

La requete est : SELECT id_FPP FROM fiche_prjprincipale WHERE acronyme_FPP =a
Champ 'a' inconnu dans where clause

... il t'indique que le champ 'a' est inconnu ...
Normal ! Car lorsqu'on manipule des chaines de caractères ... il faut utiliser des QUOTES !
Donc ta requete devrait être
$sqll="SELECT id_FPP FROM  fiche_prjprincipale WHERE acronyme_FPP='".$acronyme."'";



Pour ce qui est de ton autre question ....

s'il vous plait est il possible de recuperer par exemple le id d'un enregistrement qui vient d'etre inserer

Il existe le LAST_INSERT_ID
echo "New record has id: " . mysqli_insert_id($cnx); 


1
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
25 avril 2016 à 15:23
Je ne connaissais pas, comme quoi on en apprends tous les jours, merci pour l'astuce Jordane ^^
0
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
26 avril 2016 à 11:22
mercii bcp monsieur Jordan et monsieur Xavier, vos aides et vos conseils sont très utiles et nous sauve vraiment .
0
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
Modifié par Nouvelle_Informaticienne le 26/04/2016 à 14:28
Bonjour,

s'il vous plait pouvez vous m'aider encore dans le meme sujet et meme code j'ai encore un soucis avec mon code dans lequel j’exécute 3 requêtes toujours une pour insertion principal l'autre pour la sélection de ce qu'on a insérer et la dernière pour l'insertion encore une fois dans une autre table a cause de ce melange j n'arrive pas a faire fonctionner mon code car toujours c'est l'une des requetes qui marche et non pas les deux entre les deux requetes suivantes :
$ses = "INSERT INTO fiche_part (id_part_fp) VALUES ('$selectValue') " ;
// et
$reqq= "INSERT INTO fiche_part (id_FPP_fp) VALUES ('$id')";

ne marche pas les deux en meme temps !! je ne sais pas pk je n'arrive pas a comprendre pk

if(isset($_POST['responsables']) && !empty($_POST['responsables'])){
//print_r($respo[2]);
foreach($responsables as $selectValue){
echo $selectValue."<br>";
///REQUETE DE L INSERTION DU ID PARTENAIRE DANS LA TABLE FICHE PART
$ses = "INSERT INTO fiche_part (id_part_fp) VALUES ('$selectValue') " ;
$requetee = mysqli_query($cnx,$ses) or die( mysqli_error($cnx) ) ;
if( $requetee)
{
echo"bien insere id part fp <br>";
echo'<br>';
}
else
{
echo"non insere";
echo'<br>';
} }}

//création de la requête SQL:
$sql = "INSERT INTO fiche_prjprincipale(acronyme_FPP,duree_FPP,estimation_financ_FFP,technologie_val_FPP,application_FPP,contexte_FPP,descriptif_FPP,resultatsAtt_FPP)VALUES('$acronyme','$duree','$estimation','$technologie','$applications','$contexte','$descriptif','$resultats')" ;
echo"avant execution requette!! <br>";
//exécution de la requête SQL:
$requete = mysqli_query($cnx,$sql) or die( mysqli_error($cnx) ) ;
echo"apres execution requette!!<br>";

//affichage des résultats, pour savoir si l'insertion a marchée:
if( $requete)
{
// $sqll="SELECT id_FPP FROM fiche_prjprincipale WHERE acronyme_FPP ='".$acronyme."'";
$sqll="SELECT MAX(id_FPP) AS max_id FROM fiche_prjprincipale";
echo"cv <br> ";
echo "<br> La requete DE MAXIMUM est : ".$sqll."<br>";
$reque = mysqli_query($cnx,$sqll) or die( mysqli_error($cnx) ) ;
$row = mysqli_fetch_assoc($reque);
echo "quoi ";
echo "l id MAX est ". $row["max_id"]."<br>";
$id=$row["max_id"];
//ici
foreach($responsables as $selectValue){
// echo $selectValue."<br>";
$reqq= "INSERT INTO fiche_part (id_FPP_fp) VALUES ('$id')";
$requ = mysqli_query($cnx,$reqq) or die( mysqli_error($cnx));}
echo("<br> L insertion a ete correctement effectuee<br>") ;
echo'<br>';
}
else { echo("L'insertion à échouée") ;
echo'<br>';
}

je vous remercie pour votre temps et bonne journee
affichage :

1
bien insere id part fp
2
bien insere id part fp
3
bien insere id part fp
avant execution requette!!
apres execution requette!!
cv
La requete DE MAXIMUM est : SELECT MAX(id_FPP) AS max_id FROM fiche_prjprincipale
quoi l id MAX est 70
L insertion a ete correctement effectuee


mais une insertion n'est pas faite et deux autres ca va
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
26 avril 2016 à 14:55
Ajoute ceci :

echo '$ses : '."$ses".'<br>';
echo '$reqq : '."$reqq";


Puis teste tes requêtes directement dans phpmyadmin et dis nous le résultat.
0
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
Modifié par Nouvelle_Informaticienne le 26/04/2016 à 15:10
voila Monsieur ,
$ses : INSERT INTO fiche_part (id_part_fp) VALUES ('2')
$reqq : INSERT INTO fiche_part (id_FPP_fp) VALUES ('71')
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21 > Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021
26 avril 2016 à 15:23
Ces deux requêtes tu les a obtenu alors qu'il y en a une des deux qui ne passe pas ?
0
Nouvelle_Informaticienne Messages postés 153 Date d'inscription mercredi 20 avril 2016 Statut Membre Dernière intervention 20 décembre 2021 3
26 avril 2016 à 15:28
exactement je fais l'insertion dans la meme table "fiche_part" un champs est bien rempli et l'autre je trouve que des 0 ! je ne comprend pas des fois c'est lle champs id_FPP_fp qui est bien rempli avec le id max et l'autre champs c'est que des 0 et des fois c'est le contraire ! qlq chose qui ne marche pas
0
Xavierdu34 Messages postés 216 Date d'inscription lundi 2 décembre 2013 Statut Membre Dernière intervention 10 octobre 2016 21
26 avril 2016 à 17:15
Ah ben non c'est parfaitement normal ... en faisant du insert, tu ajoute toujours une nouvelle id ...
Si tu souhaites mettre à jour un enregistrement existant avec ta deuxième requête il faut faire soit un Update soit un Replace ...
0