[php] Prendre dernière ligne d'une table

Fermé
Poulap - 6 mai 2010 à 16:15
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 - 6 mai 2010 à 18:27
Bonjour,

je voudrais pouvoir crée une nouvelle commande dans la table COMMANDE, comme ceci :
$ins = mysql_query ("INSERT INTO COMMANDE ( Com_id, Prix_total_calculé, client_id ) VALUES ( NULL, '".$prix_total_calcule."', '')");

Et donc mettre NULL pour Com_id, pour que ça se crée automatiquement à la suite des autres commandes.

Et j'aimerai ensuite récupéré cette valeur pour pouvoir l'utilisé par la suite...
Mais je ne vois pas trop comment faire....!
A voir également:

3 réponses

Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
Modifié par Groarh le 6/05/2010 à 17:53
Salut,
tu as une interface PhpMyAdmin ? Si oui, vérifie que la colonne Com_id a l'option auto_increment : ça veut dire qu'elle se met à jour automatiquement. En général, ce type de colonne est également not null, vérifie.
C'est ce qu'on appelle parfois un SERIAL, c'est l'équivalent de bigint UNSIGNED not null auto_increment.

Avec ça tu peux simplifier ta requête en retirant Com_id, le moteur de ta DB gère ça tout seul.

Pour récupérer l'ID inséré, tu ne peux pas utiliser le résultat $ins car il renvoie seulement un booléen lors d'une requête INSERT. Par contre, la fonction mysql_insert_id() est bien pratique : https://www.php.net/manual/fr/function.mysql-insert-id.php

Ce qui donne un code qui ressemble à ça :
$ins = mysql_query ("INSERT INTO COMMANDE ( Prix_total_calculé, client_id ) VALUES ( '".$prix_total_calcule."', '')"); 
$id = mysql_insert_id();


;)
0
masterchris Messages postés 82 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 8 juillet 2011 5
6 mai 2010 à 18:01
sinon tu peux faire un select MAX sur la table pour récupérer l' id que tu viens de rentrer:
$ins = mysql_query ("select MAX(Com_id) from COMMANDE "); 
0
Groarh Messages postés 682 Date d'inscription vendredi 1 août 2008 Statut Membre Dernière intervention 28 juin 2015 185
6 mai 2010 à 18:27
Oui mais, sans vouloir te vexer masterchris, ça fait une requête de plus, donc ça va davantage prendre de temps au serveur. C'est moins efficace...
0