Pagination php

Fermé
Noel-barbu Messages postés 258 Date d'inscription mercredi 5 septembre 2012 Statut Membre Dernière intervention 16 janvier 2018 - 10 oct. 2015 à 21:11
Noel-barbu Messages postés 258 Date d'inscription mercredi 5 septembre 2012 Statut Membre Dernière intervention 16 janvier 2018 - 17 oct. 2015 à 12:08
bonjour;

bonjour tout le monde excuser moi de vous derangers mais, j'aurais besoin de votre aident, je souhaiterais mette en place une pagination en dehors de ma boucle while et aussi n'afficher que 5 résultats dans la page, je souhaiterais grace à la pagination afficher sur X nombre de page, 5 article par page si possible.

voilà mon code Php ;


// Connection base de donnée
include 'config/connexion.php';


//juste après la connexion
mysql_query("SET NAMES 'UTF8'");


//création de la requête SQL:
$sql = "SELECT wp_id, wp_titre, wp_auteur, wp_date, wp_texte, wp_imgarticle, wp_lien FROM wp_accueil order by wp_id DESC";

//exécution de notre requête SQL:
$requete = mysql_query( $sql, $cnx ) or die( "ERREUR MYSQL numéro: ".mysql_errno()."<br>Type de cette erreur: ".mysql_error()."<br>\n" );


while ($result = mysql_fetch_object($requete))

{

$img_article_accueil = 'images/' .html_entity_decode($result->wp_imgarticle);

echo '<div id="content">';
echo '<div class="post">';
echo '<div id="title_article"><h2 class="title">'.html_entity_decode($result->wp_titre).'</h2></div>';
echo '<table class="meta">';
echo '<tr>';
echo '<td align="center"><img src="images/icones-pack/Contacts.png" width="19" height="19" alt="image1" /> <span class="info"> Auteur :</span> <span class="auteur"> '.html_entity_decode($result->wp_auteur).' </span></td>';
echo '<td align="center"><img src="images/icones-pack/Overtime.png" width="19" height="19" alt="image1" /> <span class="info"> Posté le :</span> <span class="date"> '.html_entity_decode(date("d/m/Y", strtotime($result->wp_date))).' </span></td>';
echo '<td align="center"><img src="images/icones-pack/Comments.png" width="19" height="19" alt="image1" /><span class="info"> Commentaire :</span> <span class="auteur"> 32</span> </td>';
echo '</tr>';
echo '</table>';
echo '<div class="entry">';
echo '<img src="data:image/png;base64,'.base64_encode(file_get_contents($img_article_accueil)).' " width="560" height="300" alt="image1" id="image_article" />';
echo '<br/><br/>';
echo html_entity_decode($result->wp_texte);
echo '<br/>';
echo '<br/>';

// c'est cette page index qui envoie "id" de la table mysql vers la page article.php car, c'est celle-ci quoi doit afficher les informations par rapport à id envoyer
echo '<div id="lire_suite"><a href="'.htmlspecialchars($result->wp_lien).'?page='.htmlspecialchars($result->wp_id).' ">< Lire La suite /> { OK }</a></div>';

echo '</div>';
echo '</div>';


}
echo '</div>';
echo '</div>';
echo '</div>';



merci de votre aide
A voir également:

1 réponse

jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 1
Modifié par jubasse le 12/10/2015 à 21:52
Dans ta query mysql tu peut utiliser l'opérateur LIMIT à la fin de ta requête sql. Il s'utilise de cette façon :
LIMIT element_de_depart,nombre_d_element.

Il te faut donc une variable contenant le nombre d'éléments par page (dans ton cas 5), la page courante (qui peut être passée avec la variable $_GET["p"] par exemple) si c'est null tu l'initialise à 1.
a partir de ça tu calcul l'élément de départ qui correspond à :
((pagecourante - 1) * nombre element par page)

et pour gérér ton $_GET tu met un champ hidden contenant la page

J'espère que ça t'aura un peu aidé ! :)
0
élément_de_depart (tu entend quoi par élément de départ une colonne de référence ?
0
jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 1
12 oct. 2015 à 21:41
non l'élement de départ se calcul juste en dessous en gros par exemple tu es en page 2 donc dans ta page 1 tu as affiché les éléments de 1 à 5 (5 éléments par page) donc en page 2 tu commence à partir du sixième élément jusqu'au 10 ème donc dans ta requête tu fera LIMIT 6,5 (6 c'est l'élément de départ et 5 c'est le nombre d'éléments)
0
jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017 1
Modifié par jubasse le 12/10/2015 à 21:45
Si tu veux tu peux aller voir cette vidéo, un support vidéo c'est toujours sympas :

https://www.youtube.com/watch?v=dYMi89K1Bsg

ça explique un peut le concept que je t'ai décrit (en mieux même) ;)
0
Noel-barbu Messages postés 258 Date d'inscription mercredi 5 septembre 2012 Statut Membre Dernière intervention 16 janvier 2018 2 > jubasse Messages postés 24 Date d'inscription mercredi 2 septembre 2015 Statut Membre Dernière intervention 11 octobre 2017
17 oct. 2015 à 12:08
merci à toi ça ma été très utile !
0