mysql

Eléphant du PHP | 101 Messages

28 sept. 2005, 11:04

j'ai developpé une base de donnée mysql.
Cette base contient des documents par ordre ante-chronologique (du plus recent au plus vieux).
document unique definie par une clef primaire id en auto-incrémentation.

De plus, j'ai associé un moteur de recherche a cette base de donnée. Je voudrais que les documents s'affichent du plus recent au plus vieux.

(Je ne peux definir la clef primaire par date car il se peut qu'il y ait plusieurs documents a une meme date.)


je voudrais savoir comment faire pour que lorsque j'enregistre un document via phpadmin le document se mettent en premiere position pour que le moteur de recherche le considere en premier?

j'ai pensé a ceci: il faut que je lui donne un id=1 pour qu'il se mette en premiere position et que les autres prennent automatiquement les valeurs suivantes?


merci.

Mammouth du PHP | 568 Messages

28 sept. 2005, 11:11

Ta façon de faire me semble hasardeuse...

Tes enregistrements peuvent être inséré dans n'importe quel sens. Tu peux toujours trier ton champs date dans la requête qui ira chercher les résultats.

Tu te compliques la vie pour rien...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Tho
Eléphant du PHP | 58 Messages

28 sept. 2005, 11:24

Oui, laisse mysql faire sa soupe avec l'id auto-increment. Ce n'est pas un critère pertinent pour le tri, il sert juste à s'assurer de l'unicité de ta ligne.

Si tu veux vraiment que chaque enregistrement ajouté soit en premier, alors fais un tri décroissant sur ton id.
Cette base contient des documents par ordre ante-chronologique (du plus recent au plus vieux).
Un des intérêts d'une base de données est qu'on peut mettre les valeurs en vrac et elle s'occupera de les trier. Pas la peine de les insérer triés (à part une optimisation spécifique pour une seule requête de tri).

Eléphant du PHP | 101 Messages

28 sept. 2005, 11:44

je suis nouveau en php...
Avez une idée de requete a inserer dans le script pour que le résulats s'affiche par date par ordre décroissant du plus récent au plus vieux?

Avatar du membre
ViPHP
ViPHP | 3008 Messages

28 sept. 2005, 11:46

Après avoir utilisé les auto incrément, il te suffit juste de faire une requête avec ORDER BY xxx desc (ou asc) pour les afficher de façon décroissante ou croissante.
Modifié en dernier par charabia le 28 sept. 2005, 11:49, modifié 1 fois.

Mammouth du PHP | 568 Messages

28 sept. 2005, 11:48

Ce n'est pas du PHP le soucis ici... C'est du SQL... Regarde cette page et penche toi sur le ORDER BY...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

28 sept. 2005, 12:10

Modération : je déplace le sujet dans "Base de données" où tu devrais avoir plus de réponses.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

ViPHP
pjl
ViPHP | 2119 Messages

28 sept. 2005, 14:26

je suis nouveau en php...
Avez une idée de requete a inserer dans le script pour que le résulats s'affiche par date par ordre décroissant du plus récent au plus vieux?
Une idée oui, même plusieurs mais sans savoir que que tu as déjà fait...........


PS : un titre plus explicite serait sympa.