Nous sommes actuellement le 10 Juil 2026, 14:49

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 8 message(s) ] 
Auteur Message
 Sujet du message: MySQL
MessagePublié: 11 Avr 2005, 16:39 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 26 Mars 2002, 10:51
Message(s) : 2546
Localisation : Ottawa, ON
Quelle est la commande MySQL a intégrer dans mon code php afin d'effectuer une requête dans une BD et qu'il me sorte uniquement l'ID le plus récent (le plus haut). ?

_________________
Développeur Web Senior, CEPEO, Ottawa, ON


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 11 Avr 2005, 18:31 
Hors-ligne
Fidèle
Fidèle
Avatar de l’utilisateur

Inscription : 17 Jan 2002, 19:30
Message(s) : 635
Localisation : St-Jean-Chrysostome
Code :
SELECT LAST_INSERT_ID();

_________________

Consoles: Xbox 360 (GamerTag Stromgol74) et PS3 (GamerTag Stromgol74)
Athlon XP 2400+ / ECS K7S5A v.1.0 / 2 x 512Mo DDR 400mhz / ATI Radeon X800 XL 256Mo / Western Digital 160Go 8Mo cache / HP w2007 20.1" Widescreen / Windows XP Professional
MacBook Pro 13" 2.26Ghz 2GB 160G Max OSX 10.6.2


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 11 Avr 2005, 19:58 
Hors-ligne
Référence
Référence
Avatar de l’utilisateur

Inscription : 06 Jan 2002, 22:38
Message(s) : 5949
Localisation : Quebec
Tu peux aussi faire un
Code :
Select ID From table Order By ID DESC
qui va te sortir l'id le plus haut en premier.

_________________
Herakles Informatique Inc
Collaborateur pour HardGamers


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 11 Avr 2005, 20:12 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 26 Mars 2002, 10:51
Message(s) : 2546
Localisation : Ottawa, ON
Monrake a écrit:
Tu peux aussi faire un
Code :
Select ID From table Order By ID DESC
qui va te sortir l'id le plus haut en premier.


Oui mais il me sort la liste complète comme ca.. je veut uniquement le dernier.. je vais utiliser le code de la premiere réponse je croit bien

_________________
Développeur Web Senior, CEPEO, Ottawa, ON


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 11 Avr 2005, 20:20 
Hors-ligne
Régulier
Régulier
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 10:30
Message(s) : 260
Localisation : Sainte-Foy
TyL a écrit:
Monrake a écrit:
Tu peux aussi faire un
Code :
Select ID From table Order By ID DESC
qui va te sortir l'id le plus haut en premier.


Oui mais il me sort la liste complète comme ca.. je veut uniquement le dernier.. je vais utiliser le code de la premiere réponse je croit bien


Si ma mémoire est bonne, 'Limit' permet de restraindre le nombre de ligne retourné.

Code :
SELECT id FROM table ORDER BY id DESC LIMIT 1


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 11 Avr 2005, 21:18 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
ce serait mieux d'utiliser pour aller chercher le plus grand ID dans la table.

Code :
SELECT MAX(ID) FROM TABLE


Mais le plus sécuritaire, c'est vraiment d'utiliser
Code :
SELECT LAST_INSERT_ID();


parce que le serveur garde le dernier ID pour chaque connection et il n'est pas modifiable par personne d'autre que celui qui a ouvert la connection. Si on a 50 personnes qui créent des enregistrements en même temps, chacun aura son LAST_INSERT_ID qui lui donnera le ID du dernier enregistrement qu'il a créé.

Si vous utilisez un MAX(ID) ou autre technique comme ça, il ne suffit qu'une autre personne viennent enregistrer entre votre écriture et votre lecture et vous allez corrompre vos données, c'est très risqué, surtout en web!

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 11 Avr 2005, 23:11 
Hors-ligne
A réponse à tout!
A réponse à tout!
Avatar de l’utilisateur

Inscription : 26 Mars 2002, 10:51
Message(s) : 2546
Localisation : Ottawa, ON
Procyon a écrit:
ce serait mieux d'utiliser pour aller chercher le plus grand ID dans la table.

Code :
SELECT MAX(ID) FROM TABLE


Mais le plus sécuritaire, c'est vraiment d'utiliser
Code :
SELECT LAST_INSERT_ID();


parce que le serveur garde le dernier ID pour chaque connection et il n'est pas modifiable par personne d'autre que celui qui a ouvert la connection. Si on a 50 personnes qui créent des enregistrements en même temps, chacun aura son LAST_INSERT_ID qui lui donnera le ID du dernier enregistrement qu'il a créé.

Si vous utilisez un MAX(ID) ou autre technique comme ça, il ne suffit qu'une autre personne viennent enregistrer entre votre écriture et votre lecture et vous allez corrompre vos données, c'est très risqué, surtout en web!


Je vais t'expliquer ce que cette portion de code fera. C'est pour ma section News sur ma page d'accueil. Je veut la nouvelle la plus récente (l'ID le plus élèvé de la table "news") soit affichée. Elle et seulement elle. Et comme je suis le seul qui as le droit d'ajouter des nouvelles... Quelle serais la méthode la plus efficace?

_________________
Développeur Web Senior, CEPEO, Ottawa, ON


Haut
 Profil  
Répondre en citant  
 Sujet du message:
MessagePublié: 11 Avr 2005, 23:48 
Hors-ligne
Modérateur
Modérateur
Avatar de l’utilisateur

Inscription : 07 Jan 2002, 15:10
Message(s) : 3551
Localisation : Beauport, Québec
TyL a écrit:
Je vais t'expliquer ce que cette portion de code fera. C'est pour ma section News sur ma page d'accueil. Je veut la nouvelle la plus récente (l'ID le plus élèvé de la table "news") soit affichée. Elle et seulement elle. Et comme je suis le seul qui as le droit d'ajouter des nouvelles... Quelle serais la méthode la plus efficace?


Ok, dans ce cas là, pour avoir seulement le ID le plus haut, c'est "SELECT MAX(ID) FROM Table".

Si tu veux aller chercher les données de l'enregistrement qui a le plus haut ID, tu peux utiliser une sous-requête dans ce style:

Code :
SELECT newsTitre, newsExtrait, newsTexte, auteurNom, auteurEmail
FROM news INNER JOIN auteur on news.fk_auteurID = auteur.auteurID
WHERE news.newsID = (SELECT MAX(newsID) FROM news)


ou encore, sans sous requête, je ne sais pas lequel est vraiment le plus efficace, prend celui qui t'es le plus simple à comprendre! :)

Code :
SELECT newsTitre, newsExtrait, newsTexte, auteurNom, auteurEmail
FROM news INNER JOIN auteur on news.fk_auteurID = auteur.auteurID
ORDER BY newsID DESC
LIMIT 1

_________________
Procyon,
Modérateur de la section Trouvailles


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 8 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 2 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site