Php/mysql : pb affichage avec LAST_INSERT_ID
campesinos
-
freedelta -
freedelta -
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
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:
- Php/mysql : pb affichage avec LAST_INSERT_ID
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
- Php alert - Forum PHP
- Mysql a répondu : documentation connexion impossible : paramètres incorrects. - Forum Bases de données
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....
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....
Salut !
Et comme ça ?
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+ :-)
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+ :-)
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 :)
A+
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+
merci encore pour votre aide :
Ma requete insert est ok =>elle m'insere bien les datas
si affichage des résultats, pour savoir si l'insertion a marchée via:
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>';
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>';
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+ :-)
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+ :-)
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:
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(); ?>