SELECT numlivre, titre, auteur, description, editeur,
année, taille, etat, detail, estimation, numero_theme FROM Livres
WHERE ".$critère."
ORDER BY ".$ordre."
LIMIT ".$debut.", 30";
Le DESC trie par ordre décroissant
Code : Tout sélectionner
SELECT numlivre, titre, auteur, prix
FROM Livres
ORDER BY num_livre DESC, prix
LIMIT 0, 30
Code : Tout sélectionner
SELECT *
FROM (SELECT numlivre, titre, auteur, estimation
FROM Livres
ORDER BY num_livre DESC
LIMIT 0, 30)
ORDER BY estimation DESC
SELECT numlivre, titre, auteur, description, editeur,
année, taille, etat, detail, estimation, numero_theme
FROM Livres
WHERE ".$critère."
GROUP BY numlivre
HAVING numlivre > ( max( numlivre ) - 30 )
ORDER BY ".$ordre."
thierry
Quelle version de MySQL utilises-tu ?Il semble ne pas accepter la sous requette
SELECT b.numlivre, b.titre, b.auteur, b.description, b.editeur,
b.année, b.taille, b.etat, b.detail, b.estimation, b.numero_theme
FROM Livres as a
CROSS JOIN Livres as b
WHERE ".$critère."
GROUP BY b.numlivre
HAVING numlivre > ( max( a.numlivre ) - 30 )
ORDER BY ".$ordre."
n'oubli pas de mettre les alias 'b' sur les clauses where et order by.Pas convaincu : si une des dernières titres inscrit a été effacé pour une raison x ou y, ton (MAX(a.numlivre) - 30) ne retournera pas 30 mais 29 résultats.comme ça c'est mieux:n'oubli pas de mettre les alias 'b' sur les clauses where et order by.SELECT b.numlivre, b.titre, b.auteur, b.description, b.editeur, b.année, b.taille, b.etat, b.detail, b.estimation, b.numero_theme FROM Livres as a CROSS JOIN Livres as b WHERE ".$critère." GROUP BY b.numlivre HAVING numlivre > ( max( a.numlivre ) - 30 ) ORDER BY ".$ordre."