[RESOLU] Création d'un lien "article suivant" dans un agenda.

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 : [RESOLU] Création d'un lien "article suivant" dans un agenda.

Re: [RESOLU] Création d'un lien "article suivant" dans un ag

par Alex Acho » 25 juin 2014, 13:11

Bien évidement que j'ai essayé le >= ^^. Mais à la navigation, il se formait évidement une boucle entre les événements de même date.

Re: Création d'un lien "article suivant" dans un agenda.

par Alex Acho » 25 juin 2014, 11:31

Ok j'ai trouvé une solution. Je ne sais pas si c'est la plus simple donc si vous avez mieux, n'hésitez pas.

J'ai créé une nouvelle colonne, une sorte d'id améliorée.
Elle est composée de :
  • - la date de l'événement
    - d'un tiret
    - la valeur retournée par le fonction time(), c'est-a-dire, l'heure courante mesurée en secondes
Ce qui nous donne des valeurs comme celle-ci '2014-06-28-1403686538'. Ainsi, aucune valeur ne pourra être identique mais elle conserve la chronologie.
Ensuite j'ai plus qu'à ordonner ma requête en fonction de cette colonne.
$req = $bdd -> prepare('SELECT titre, lien FROM evenements WHERE id_amelioree > ? ORDER BY id_amelioree LIMIT 1');
$req -> execute(array($IdAmelioree));
Et voici, le tour est joué.

Re: Création d'un lien "article suivant" dans un agenda.

par Elie » 25 juin 2014, 10:49

Bah tu met >= alors :)
$req = $bdd -> prepare('SELECT titre, lien FROM evenements WHERE `date_event` >= ? ORDER BY id_article DESC LIMIT 1');

Re: Création d'un lien "article suivant" dans un agenda.

par Alex Acho » 25 juin 2014, 10:39

Elie, toujours Elie... ^^

Oui, j'ai bel et bien une colonne id. Le hic est que les futurs administrateurs du site seront peut-être amenés à créer des événements dans le désordre.
Par exemple, créer dans un premier temps un article pour un événement qui se passera le 14 juillet, puis dans un second temps pour un événement qui se passera le 12 juin.

Et paf, là, la requête ne fonctionne pas puisque les id ne vont pas dans l'ordre chronologique des choses.
Et puis reste toujours le problème de base, faire en sorte que la navigation entre les articles de même date se fasse.

Bon, j'ai une petite idée en tête, je vois si ça fonctionne, et si c'est le cas je poste ma solution.

Merci Elie ^^

Re: Création d'un lien "article suivant" dans un agenda.

par Elie » 21 juin 2014, 16:27

La logique voudrait que tu ai fait une collone id_article avec un numero en PRIMARY_KEY et AUTO_INCREMENT ce qui permetrait a chaque article d'avoir un numéro unique et que ce numero correspond a l'ordre dans lequel les articles ont été ajouté...

http://dev.mysql.com/doc/refman/5.0/fr/ ... ement.html

Comme ca apres tu fais
$req = $bdd -> prepare('SELECT titre, lien FROM evenements WHERE date_event > ? ORDER BY id_article DESC LIMIT 1');

Création d'un lien "article suivant" dans un agenda.

par Alex Acho » 20 juin 2014, 15:35

Bonjour tout le monde,

Je réalise actuellement un script permettant d'afficher un lien vers un article suivant, comme dans un blog.

Je m'explique, il s'agit d'un agenda. Chaque événement de cet agenda se présente sur une seule page. En dessous de cette présentation, je souhaite afficher un lien renvoyant au prochain événement, et donc trié par date. J'ai donc codé cette requête sql, qui fonctionne très très bien.
$req = $bdd -> prepare('SELECT titre, lien FROM evenements WHERE date_event > ? ORDER BY date_event LIMIT 1');
$req -> execute(array($DateEvent));
Le hic, est que je ne peux pas créer deux événements avec une même date, puisque avec cette requête l'un des deux sera automatiquement sauté à la navigation. Et là où ça se complique encore, c'est que les id de chaque article ne correspondront pas forcément à la chronologie des événements.



Bon, je sais vraiment pas si je me fais comprendre, donc voici un exemple concret.

Si je créé quatre événements, comme ceci...
Création de l'article 01 (date de l'événement : 12 août)
Création de l'article 02 (date de l'événement : 5 juillet)
Création de l'article 03 (date de l'événement : 12 août)
Création de l'article 04 (date de l'événement : 30 décembre)
... et que je les passe à la moulinette de mon script avec la requête présentée au dessus, la navigation de page en page se fera comme cela :
article 02 (5 juillet) --> article 01 (12 août) --> article 04 (30 décembre)
Et voilà, l'article 03 à été sauté, alors que j'aurais aimé qu'il soit en troisième position. Ceci est tout à fait normal vu ma requête, je le comprends. Mais je n'arrive pas à l'améliorer. Alors est ce que quelqu'un saurait faire en sorte que cette requete accepte les doublons de date ?

Merci beaucoup.