Petit probléme avec mysql_insert_id()...
Posté : 22 août 2006, 11:59
Bonjour à tous,
J'insére des données par le biais d'un formulaire qui utilise une fonction
"insere_element"...je voudrais récuperer au final l'ID du dernier enregistrement dans mon bandeau d'information du type :
Vous avez ajouté l'année "2007" dans la base.
Le champ id_millesime de ma table millesime est en autoincrémentement,
C'est la 1ére fois que j'utilise mysql_insert_id() Je cherche depuis ce matin et je ne trouve pas mon erreur.
d'avance merci.
Kimble
J'insére des données par le biais d'un formulaire qui utilise une fonction
"insere_element"...je voudrais récuperer au final l'ID du dernier enregistrement dans mon bandeau d'information du type :
Vous avez ajouté l'année "2007" dans la base.
Le champ id_millesime de ma table millesime est en autoincrémentement,
C'est la 1ére fois que j'utilise mysql_insert_id() Je cherche depuis ce matin et je ne trouve pas mon erreur.
Code : Tout sélectionner
Le fichier fonctions_ventes.php<?php
//insère un nouvel élément (commercial, modéle, millesime etc) dans la base de donnée, après avoir vérifié si celui-ci existe déjà.
//$table = table dans laquelle insérer la donnée.
//$champ = champ dans lequel insérer la donnée.
//$element_insere = nouvel élément à insérer (commercial, modéle, millesime etc).
function insere_element($table,$champ,$element_insere)
{
global $info;
$texte_query="select * from $table where $champ='".$element_insere."'";
$req=mysql_query($texte_query);
$result=mysql_fetch_array($req);//on cherche si l'élément (origine, commercial, millésime...) est déjà dans la base
if ($result=="")//si non, on l'insère
{
$text_query="insert into $table ($champ) values ('".$element_insere."')";
mysql_query($text_query) or die (mysql_error());
//id de la nouvelle insertion
$dernier_id=mysql_insert_id();
$info=$table."_cree";
$return=($info);
}
else {
$info="existe";
return ($info);
}
}
?>
Code : Tout sélectionner
Le fichier ajouter_elements.php<?php
//Onglet pour ajouter une nouvelle année
$lien="index.php?liste=ajouter_elements&elements=millesime";?>
<strong><?php echo ('<a href="'.$lien.'" target="_top" title=" Insérer une nouvelle année "><span class="trait"> | </span><span class="menu_recherche">Insérer une nouvelle année<span></a><span class="trait"> | </span>');?></strong>
<?php
//code simplifié
switch($elements) //teste sur quel lien on a cliqué dans le menu
{
//Formulaire pour ajouter une nouvelle année
case'millesime':?>
<fieldset>
<legend><strong>Ajouter une nouvelle année</strong></legend>
<table>
<tr>
<?php
form_un_champ("index.php?liste=ajouter_elements&elements=millesime","<strong><span class=\"menu_liste\">Ajouter une année : </span></strong>","mil","formulaire","millesime","Ajouter"); ?>
</tr>
</table>
<br />
</fieldset>
<?php
break;
}
?>
Code : Tout sélectionner
Le fichier index.php<?php
switch($formulaire)
{
case 'millesime':
insere_element("millesime","millesime",$mil);
break;
default:
$info="Oops ! erreur";
}
if ($formulaire!="")
/*après passage dans un formulaire et mise à jour des bases de données
on relance la page index avec le message $info*/
{
rediriger("index.php?message=$info");
}
switch($message)
{
case 'millesime_cree':
$dernier_id=(isset($_GET['dernier_id'])) ? $_GET['dernier_id'] : "";
$req_nouvel_millesime=mysql_query("select * from millesime where millesime ='".$dernier_id."'") or die(mysql_error());
//C'est ici que je voudrais récuperer le dernier_id
echo "<br /><br /><center><span class=\"menu_liste\">Vous avez ajouté l'année ".$dernier_id." dans la base</span></center>";
break;
}?>
Une idée Kimble