Commentaire(s) Création de la page affichant les articles
Commentaire(s)
- #561 Commentaire de Yayap13 posté le 16/12/11 à 21:04:33 :

-
Déjà: Bonjour et merci pour ces tutorials! (ils sont vraiment cool et bien foutus)
Mais j'ai en quelque sorte un problème..
J'aimerais rajouter la possibilité de faire un page précédente/suivante après avoir afficher les 5 dernières "news" sur mon site!
Le problème c'est que ça fait trois jours que j'essaie et je ne trouve toujours pas..
Si tu pouvait me donner quelques conseils et m'aiguiller un peu ce serait vraiment chouette ;)
Bonne soirée Yayap.
- #562 Commentaire de c00lman posté le 17/12/11 à 11:02:01 :

-
Bonjour Yayap13,
Je prend comme exemple la page qui affiche les articles et sur la quelle on souhaite afficher en bas de page l'article suivant et précédent. Je détaille chaque étape pour bien comprendre
.
On cherche quoi » un id
SELECT id
Dans quelle table » table CONTENU
SELECT id FROM CONTENU
Dans quelle champ » champ id
SELECT id, FROM CONTENU WHERE id
Qui soit comment » inférieure < et supérieure > à l'id actuel
SELECT id, titre FROM CONTENU WHERE id > '".$id_transmit."'
Dans quelle catégorie » dans la catégorie dont dépend l'article actuel
SELECT id FROM CONTENU WHERE id > '".$id_transmit."' AND id_categorie = '".$id_categorie."'
Pour obtenir l'id suivant, on effectue un classement par ordre croissant
SELECT id FROM CONTENU WHERE id > '".$id_transmit."' AND id_categorie = '".$id_categorie."' ORDER BY id ASC
Comme celui qui nous interesse est juste le suivant, on indique une limite
SELECT id, titre FROM CONTENU WHERE id > '".$id_transmit."' AND id_categorie = '".$id_categorie."' ORDER BY id ASC LIMIT 0, 1
Ensuite, on adapte la requête selon ce que l'on veut obtenir :
<?php
$suivant = mysql_query("SELECT id, titre FROM CONTENU WHERE id > '".$id_transmit."' AND id_categorie = '".$id_categorie."' ORDER BY id ASC LIMIT 0, 1");
$affichesuivant = mysql_fetch_array($suivant);
$precedent = mysql_query("SELECT id,titre FROM CONTENU WHERE id < '".$id_transmit."' AND id_categorie = '".$id_categorie."' ORDER BY id DESC LIMIT 0, 1");
$afficheprecedent = mysql_fetch_array($precedent);
echo '<a href="page.php?id='.$afficheprecedent['id'].'">'.$afficheprecedent['titre'].'</a> | <a href="page.php?id='.$affichesuivant['id'].'">'.$affichesuivant['titre'].'</a>';
?>
Note : dans la première boucle while() du code, il faut au préalable rajouter l'identifiant de la catégorie dont dépend l'article :
while($affiche = mysql_fetch_array($page))
{
$titre=$affiche['titre'];
$description=$affiche['description'];
$contenu=$affiche['texte'];
//On récupère l'identifiant de la catégorie
$id_categorie = $affiche['id_categorie'];
}
- #563 Commentaire de Yayap13 posté le 18/12/11 à 20:20:54 :

-
Merci beaucoup! C'est exactement ça ;)
Je l'ai adapté et ça marche nickel! Encore merci pour toutes les explications!!
Bonne soirée =P




