Prob de commande SQL

Répondre
mobman02
le 29/12/2004 à 23:48
mobman02
J'ai un petit probleme avec une requete.
Je voudrais classer les resultat par ID,
mais dans l'ordre decroissant.

Je ne trouve pas la bonne syntaxe.
Voyez plutot:
SELECT titre,texte,date,auteur,id FROM news_tbl ORDER BY id DESC ASC LIMIT $limite,$nombre
// ceci ne fonctionne pas...

SELECT titre,texte,date,auteur,id FROM news_tbl ORDER BY id ASC LIMIT $limite,$nombre DESC
// ceci non plus.... HELP


C'est pour un script de news, il faut donc que la derniere news poster arrive en haut.
J'avait penser cree un vrai champs DATE, mais comme je n'y comprend rien et que MySQL enrengistre la date
en format américain, je me suis rabattu sur les ID (auto_increment).

Voila merci pour votre aide.

PS: (je vien d'y penser, mais, dans le
while($row = mysql_fetch_array($result))
il n'y a aucun moyen d'inverser l'ordre ????
http://damienalexandre.fr/
Spirit Of Doc
le 29/12/2004 à 23:52
Spirit Of Doc
$result = mysql_query("SELECT id,titre,texte,date,auteur FROM news_tbl ORDER BY id DESC LIMIT $limite,$nombre");


J'suis sur que ça va mieux marcher cette fois :)

P.s: ya de belle doc en francais sur l'SQL ...
Vous avez besoin d'un script ou d'aide ??? je peux vous le fournir gratuitement.
bibi
le 30/12/2004 à 00:08
bibi
pour ton PS, tu peux tres bien mettre ce qu'il y dans le tablo temporaire $data dans un autre tableau unique qui contiendrai toute les lignes, donc un tableau 2d et faire un rsort()
commit suicide
Sedilbur
le 30/12/2004 à 01:01
Sedilbur
Utiliser la date est tout de même préférable, en tous cas pour ma par...
Notamment si tu édites une news, il te suffira de mettre ton champ date à jour et le tour est joué contrairement avec l'ID...
Maintenant c'est toi qui vois:
$result = mysql_query("SELECT id, titre, texte, date, auteur FROM news_tbl ORDER BY date DESC LIMIT $limite,$nombre");

Ensuite dans ta boucle while() tu insères ceci et ton champ date sera coupé en sec, minute, heure,etc... (celà suppose que tu utilises un champ datetime)
sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", &$an, &$mois, &$jour, &$heure, &$min, &$sec);
/* Il y'a sans doute d'autre méthode mais c'est celle que j'utilise donc,...*/

Et tu peux utiliser NOW() pour l'insertion de la date dans ta requête
exemple:
$sql = "INSERT INTO `news_tbl` (`id`, `date`, `auteur`) VALUES ('',". NOW() .", 'toi')";


PS: J'espère t'avoir aidé et je m'excuse d'avance si des erreurs sont présentes :p
bibi
le 30/12/2004 à 01:13
bibi
sinon tu peux mettre le temps en seconde a partir du 1er janvier 1970 a minuit
c'est donc un nombre de seconde

le temps actuel est time()
tu peux afficher date("d/m/Y H:i:s",time());

et apres tu peux order by DateNews qui sera un champ de type int ou varchar
voila :)
commit suicide
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours