Requete SQL ORDER BY et WHERE en PHP

Fermé
Bob - 6 mai 2012 à 17:55
 Bob - 7 mai 2012 à 15:53
Bonjour à tous,

J'ai un soucis avec une requête MySQL en programmation PHP.
Je dispose d'une table SQL "offre" où je veux sélectionner les offres postées par Bob, trier le résultat par ordre décroissant de date, et afficher uniquement les 10 premiers résultats.
Pour cela j'ai effectué ce code :

$sql= "SELECT * FROM offre WHERE pseudo = Bob ORDER BY date DESC LIMIT 0,10 ;";
$resultat = qdb($sql);

Quand je fais mon affichage, j'obtiens toutes les offres de Bob non triées et non limitées à 10.

En revanche, si j'enlève la condition "WHERE", j'obtiens bien toutes les offres (de tout le monde) mais classées par date décroissante et seulement les 10 premiers résultats.

$sql= "SELECT * FROM offre ORDER BY date DESC LIMIT 0,10 ;";
$resultat = qdb($sql);

Si je ne met que la condition WHERE, j'obtiens bien les offres de Bob uniquement, mais toutes ses offres, et non classées (normal...)

Pourriez-vous m'expliquer pourquoi ces deux conditions ensemble ne fonctionnent pas alors qu'elles fonctionnent indépendamment?
Auriez-vous une solution à me proposer pour obtenir l'affichage que je souhaite.

Merci d'avance :-)




<config>Windows Vista
Easy PHP </config>
A voir également:

1 réponse

Heremion Messages postés 538 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
6 mai 2012 à 21:59
Bonsoir Bob,

Cela ne viendrait-il pas du fait que ton critère de recherche sur le champ "pseudo" ne soit pas entouré de guillemets? Il s'agit d'une chaine de caractères...
0
Bonjour,
Ca ne marche toujours pas avec les guillemets....
Merci pour ta réponse
0
Heremion Messages postés 538 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 1 juin 2022 102
7 mai 2012 à 13:19
Le fait que ton champ s'appelle "Date" ne pourrait-il pas entrer en conflit avec le type Date qui est utilisé pour déclarer une variable? As-tu essayé en changeant le nom de ton champ en un autre nom ?
0
Oui j'avais essayé. Mais finalement j'ai trouvé la solution.
Pour simplifier mon exemple j'avais mis pseudo = Bob, mais en réalité je cherchais un id = $enregistrement['id'] issue d'une requête précédente. Mais je me suis rendu compte que ça sélectionnait qu'une seule annonce à la fois, donc impossible de les trier.
Merci pour ton aide !
0