requette ordonné par plusieur champ

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : requette ordonné par plusieur champ

par albat » 14 avr. 2005, 14:48

Bonne question !

À priori, je dirais : "si elles sont définies toutes les deux".
Certainement pas "si elles sont égales" car AND n'est pas un opérateur de comparaison.

Ça peut se tester... ;)

par Vianney » 14 avr. 2005, 13:11

oki merci :)

juste une petite question sur ta derniere remarque albat, le booléen retournait true ou false sous quelle condition ?
si les valeurs sont affecté ? si elles sont égales ?

Re: requette ordonné par plusieur champ

par albat » 14 avr. 2005, 11:39

Tu n'étais pas très loin : Juste une petite faute de syntaxe SQL ! ;)
$sql_news = 'SELECT datePost, title, content, name, firstname, login FROM newstable ORDER BY sticky DESC,  datePost DESC LIMIT 0, 10';

Cette écriture n'est pas valide :
$sql_news = 'SELECT datePost, title, content, name, firstname, login FROM newstable ORDER BY sticky DESC AND datePost DESC LIMIT 0, 10'; 
d'où une erreur SQL. Rien de plus logique !

$sql_news = 'SELECT datePost, title, content, name, firstname, login FROM newstable ORDER BY (sticky and datePost) DESC LIMIT 0, 10'; 
(sticky and datePost) te retourne un booléen (true ou false)
d'où pas d'erreur SQL mais pas l'ordre désiré non plus. ;)

par piet » 14 avr. 2005, 11:37

y a pas de quoi...

par Vianney » 14 avr. 2005, 11:36

Yes man ! :)
Merci ca marche du feu de dieu :)

par piet » 14 avr. 2005, 11:35

essaie ça :

[quote]$sql_news = 'SELECT datePost,title,content,name,firstname,login FROM newstable order by sticky desc, datePost desc LIMIT 0, 10';[/quote]

(une virgule à la place du AND)

requette ordonné par plusieur champ

par Vianney » 14 avr. 2005, 11:18

Salut les gens :)
voila j'arrive pas a fixer ce probleme de requette...
Jveux permettre a mes utilisateurs d'épingler une news qui sera toujour affiché en 1er tant qu'elle est épinglé
J'ai donc ajouté un champ "sticky" dans ma table news ce champ prendra les valeurs "yes" ou "no"
Je voulais donc ordonné mes news dans ma requette par sticky desc en 1er puis ensuite par date desc
j'ai donc fait la requette suivante :

Code : Tout sélectionner

$sql_news = 'SELECT datePost,title,content,name,firstname,login FROM newstable order by sticky desc and datePost desc LIMIT 0, 10';
-> erreur sql !

apres j'ai essayé ca

Code : Tout sélectionner

$sql_news = 'SELECT datePost,title,content,name,firstname,login FROM newstable order by (sticky and datePost) desc LIMIT 0, 10';
-> pas d'erreur sql mais ca affiche pas dans l'ordre que je veux... :/

Jai essayé de retourner dans tous les sens mais rien a faire elle est coriace :)
qq1 aurait une idée ?