Mammouth du PHP |
19672 Messages
07 oct. 2006, 13:03
J'ajouterais que pour avoir le dernier, si ta clé primaire est un entier auto-incrémenté, tu peux récupérer la ligne avec MAX(colonne-identifiant).
Et en fait tu pourrais tout avoir en un seule requête. Proposition vite faite, il y a peut-être mieux :
Suppose la structure de table
personnes suivante :
Code : Tout sélectionner
+-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| pers_id | int(11) unsigned | NO | PRI | NULL | auto_increment |
| pers_nom | varchar(32) | NO | | NULL | |
| pers_prenom | varchar(32) | NO | | NULL | |
+-------------+------------------+------+-----+---------+----------------+
Avec comme contenu :
Code : Tout sélectionner
+---------+----------+-------------+
| pers_id | pers_nom | pers_prenom |
+---------+----------+-------------+
| 1 | Peuplus | Jean |
| 2 | Connu | Augustin |
| 3 | Affeu | Pierre |
+---------+----------+-------------+
On a trois membres, le dernier identifiant est 3. On va extraire le nombre total des membre et les informations du dernier inscrit :
Code : Tout sélectionner
mysql> SELECT COUNT(p1.pers_id) AS nbre_entrees, MAX(p2.pers_id) AS dernier_membre, p2.pers_nom, p2.pers_prenom
-> FROM `personnes` AS p1, `personnes` AS p2
-> GROUP BY p2.pers_nom
-> LIMIT 1;
+--------------+----------------+----------+-------------+
| nbre_entrees | dernier_membre | pers_nom | pers_prenom |
+--------------+----------------+----------+-------------+
| 3 | 3 | Affeu | Pierre |
+--------------+----------------+----------+-------------+
1 row in set (0.02 sec)
Attention à ne pas oublier la clause LIMIT, sinon tu auras une ligne par membre.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse 