Php/mysql : pb affichage avec LAST_INSERT_ID

Fermé
campesinos - 31 déc. 2006 à 14:01
 freedelta - 3 juil. 2009 à 12:04
Bonjour

j'ai un pb a l'affichage :
j'utilise mysql/php :je souhaite afficher mon dernier enregistrement ds 1 tableau , avec monscript ci dessous rien ne s'affiche =>page blanche ...
Merci pour votre aide et bonne fete

$res = ("SELECT LAST_INSERT_ID() from sortie");
$query=mysql_query ($res,$db) or mysql_die(mysql_error());
while($resul = mysql_fetch_array($res))
{
$e_idsortie=$resul["idsortie"];
$e_date_sortie=$resul["date_sortie"];
}
echo $e_idsortie;
 	
mysql_close()
A voir également:

7 réponses

ou sont tes balises <div

tu dois d abord creer ton tableaux ensuite tu inseres ton enregistrement et si tu veux plusieur enregistrement tu dois entourer ton tableaux avec ton script et faire une region repeter....
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
31 déc. 2006 à 14:39
Salut !

Et comme ça ?
$res = "SELECT idsortie,date_sortie FROM sortie WHERE idsortie=".mysql_insert_id();
$query=mysql_query ($res) or die(mysql_error());
$resul = mysql_fetch_array($query);
$e_idsortie=$resul["idsortie"];
$e_date_sortie=$resul["date_sortie"];

echo $e_idsortie;

mysql_close()

Apparemment, il y a plusieurs erreurs dans ton code :
- syntaxe de SELECT...WHERE incorrecte,
- mysql_fetch_array() prend en paramètre un pointeur ($query), et non le texte de la requête ($res),
- mysql_die() ?? On utilise simplement die,
- la boucle while est inutile, puisque, ici, un seul enregistrement (tuple) est retourné.

A+ :-)
0
Merci thomas

Bon ben ma page est tjs vide ;--((
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
31 déc. 2006 à 17:25
Re,

Le code est à adapter :
- Il faut vérifier le nom de la table (sortie) et les noms des champs (idsortie, date_sortie...) (j'ai essayé de reprendre ceux que tu avais donnés),
- Il faudrait aussi afficher les résultats, ce que ne fait pas mon code.

Bien sûr, aussi, le code ne marche que si dans ta page, tu fais, avant, une requête INSERT. Tu peux nous donner le code de cette requête, stp?
Sinon, mysql_insert_id() ne correspond à rien.

Essaie peut-être comme ça, mais encore une fois, c'est à adapter :)
$res = "SELECT * FROM sortie WHERE idsortie=".mysql_insert_id();
$query=mysql_query ($res) or die(mysql_error());
$resul = mysql_fetch_array($query);
$e_idsortie=$resul["idsortie"];
$e_date_sortie=$resul["date_sortie"];

echo $e_idsortie.' - '.$e_date_sortie.'<br>';

A+
0
merci encore pour votre aide :
Ma requete insert est ok =>elle m'insere bien les datas
...
$sql = "INSERT  INTO sortie (idsortie,date_sortie,)   VALUES ( '',now(), ') " ;
....

si affichage des résultats, pour savoir si l'insertion a marchée via:
require_once 'testaffiche.php';


ce fichier testaffiche.php est vide :
j'ai testé avec le code corrigé de thomas pas eu besoin d'apporter des correctifs=tt était ok

$res = "SELECT * FROM sortie WHERE idsortie=".mysql_insert_id();
$query=mysql_query ($res) or die(mysql_error());
$resul = mysql_fetch_array($query);
$e_idsortie=$resul["idsortie"];
$e_date_sortie=$resul["date_sortie"];

echo $e_idsortie.' - '.$e_date_sortie.'<br>';
0
Thom@s Messages postés 3412 Date d'inscription mardi 4 mars 2003 Statut Modérateur Dernière intervention 28 septembre 2019 678
31 déc. 2006 à 20:17
Re,

Tu as toujours une page blanche ?

Tu peux essayer de :
- Vérifier si le champ idsortie est bien un autoincrement,
- Remplacer ta première requête $sql par :
$sql = 'INSERT INTO sortie SET date_sortie='.now();
- Remplacer la deuxième requête par :
$res = "SELECT * FROM sortie WHERE idsortie=5"
où 5 est un id qui existe vraiment dans ta table. Dis-nous ensuite les résultats: comme ça, on verra si le problème vient du mysql_insert_id() ou du reste du code.
- La remplacer par :
$res = "SELECT * FROM sortie WHERE idsortie=LAST_INSERT_ID()"

A+ :-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bon ben... je vois plus j'en ai pour la nuit je crois...j'ai fais tellement de modif que je vois plus rien

ci joint le code de testaffiche.php:
<?		   
		//connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "bordereau" ) ;

/*     //a-recherche le dernier enregistrement ds la table sortie
$sql = ('INSERT INTO sortie SET date_sortie='.now()); 
// Remplacer la deuxième requête par :
$res = "SELECT * FROM sortie WHERE idsortie=LAST_INSERT_ID()" 
$query=mysql_query ($res) or die(mysql_error());
$resul = mysql_fetch_array($query);
$e_idsortie=$resul["idsortie"];
$e_date_sortie=$resul["date_sortie"];
echo $e_idsortie;

mysql_close();
?>

0
SELECT MAX(idsortie), c'est ça que tu veux ?
0
$query="SELECT LAST_INSERT_ID() as last_id FROM mytable";

print "LAST INSERT= ".$lastInsert['last_id'];
0

Discussions similaires