Mysql_insert_id() -> Problme -> A l'aide

Signaler
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006
-
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006
-
J'ai une fonction d'exécution de requêtes avec déconnexion automatique (pour faire une connexion la moins lonque possible).

<?php
function query_db($query){
//On se connecte sur le serveur
$connect=mysql_connect('leserveur','lelogin','lemotdepasse');
//On séléctionne la BDD
mysql_select_db('labase');
//On effectues la requête
$result=mysql_query($query) 
//On se déconnecte
mysql_close($connect);
//On renvoie le résultat
return $result;
}
?>


J'aimerais pouvoir récupérer la valeur AUTO_INCREMENT créée pa MySQL.
D'habitude, on ferait mysql_insert_id, mais là, la connexion étant fermée, ça renvoie '0' :sad) .

Merci de m'aider.

3 réponses

Messages postés
15
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
6 avril 2004

met ce code apres:
[code]
$result=mysql_query($query);
if ($result){//si la requete c'est exucete sans erreur
$numautocree=mysql_insert_id();//recuper l'id cree
}
//On se déconnecte
mysql_close($connect);
}
Musco
Messages postés
15
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
6 avril 2004

met ce code apres:
$result=mysql_query($query);
$numautocree='-1';
if ($result){//si la requete c'est exucete sans erreur
$numautocree=mysql_insert_id();//recuper l'id cree
}
//On se déconnecte
mysql_close($connect);
if($numautocree=='-1') //si pas d'id cree
   echo "lenregistrement ne s'est pas effectué pas d'id";
else  //on affiche l'id cree
  echo "l'id du nouvel enregistrment est :".$numautocree;
}

Musco
Messages postés
118
Date d'inscription
mercredi 26 novembre 2003
Statut
Membre
Dernière intervention
2 janvier 2006

Merci pour ton aide :) ,
Le problème est que je ne veux pas écrire l'ID sur la page, je veux le récupérer pour l'utiliser. Ta première idée ne me convient pas puisque mon code est une fonction.Mais ne cherche plus, j'ai trouvé :

<?php
function query_db($query){
//On se connecte sur le serveur
$connect=mysql_connect('leserveur','lelogin','lemotdepasse') or die("Impossible de se connecter sur le serveur : \n
".mysql_errno()." : ".mysql_error()."\n
");
//On séléctionne la BDD
mysql_select_db('labase') or die("Impossible de se connecter à la base de données : \n
".mysql_errno()." : ".mysql_error()."\n
");
//On effectues la requête
$result=mysql_query($query) or die ("Impossible d'effectuer la requête : \n
".mysql_errno()." : ".mysql_error()."\n
");
//Si la requête est d'un type "INSERT"
if(substr($query,0,6)=="INSERT"){
//On enregistre la valeur AUTO_INCREMENT attribuée
$id=mysql_insert_id();
}
//On se déconnecte
mysql_close($connect);
//Si l'id n'a aucune valeur
if($id==''){
//On renvoie le résultat de la requête
return $result;
//Sinon
} else {
//On renvoie l'id'
return $id;
}
}
?>