Page 1 sur 1

pagination sans bdd

Posté : 10 févr. 2012, 12:17
par casper62110
Bonjour debutant en php et ne voulant pas utiliser de bdd, je souhaiterais savoir si il est possible de creer une pagination avec ce style de code avec des (array) d'apres se que j'ai vu sur le net.

je souhaite qu'il m'affiche 5 article par page le jour ou il en aura 200 par exemples (1 article c est une var)

je souhaiterais seulement savoir si oui et un lien fiable qui explique comment. j essayerais de le déchiffrer le code après pour faire cela dans le mien.
 
  $var1 = 'histoireg.php';
  $var2 = 'test.php';
  array $filename = $var1;
  include 'personnage.php'; 
   echo $debut_cadre;
   echo $titre1;
   echo $balise_titre;
   echo $contenu1;
   echo $lire_la_suite;
   echo $poste_par;
   echo $lu;
   echo $pages_vues;
   echo $fin_lu;
   echo $commentaire;
   echo $fin_cadre;
   //-----------------------------------------------------------------
   $filename =$var2;
  include 'personnage.php'; 
   echo $debut_cadre;
   echo $titre1;
   echo $balise_titre;
   echo $contenu1;
   echo $lire_la_suite;
   echo $poste_par;
   echo $lu;
   echo $pages_vues;
   echo $fin_lu;
   echo $commentaire;
   echo $fin_cadre;
      

Re: pagination sans bdd

Posté : 10 févr. 2012, 12:37
par Shenryu
Salut,

Il te suffit de connaître ton nombre d'articles à afficher (5 du coup) et l'endroit où tu te trouves.

En gros tu passes la valeur où tu es ($start = 0) et à chaque fois que tu changes de pages, tu incrémentes ou décrémentes du nombre d'articles affichés.

Page 1 : url : http://monsite.com/liste.php?start=0
Page 2 : url : http://monsite.com/liste.php?start=5
Page 3 : url : http://monsite.com/liste.php?start=10

Tu récupères ton start en paramètre $_GET ;)
Tu peux aussi fonctionner avec un numéro de page et calculer ton $start. N'oublies pas de bien vérifier si la position de ton article existe dans ton tableau (genre si on te demande le 5000e article et que tu n'en as que 1000).

Re: pagination sans bdd

Posté : 10 févr. 2012, 23:15
par casper62110
j ai pas tous compris :roll:

comment on defini $start et $_get quelq'un peut il me donner un exemple merci

Re: pagination sans bdd

Posté : 10 févr. 2012, 23:41
par Shenryu
$_GET correspond à ce que tu passes en paramètres dans ton URL.

$start tu le définies à 0 par défaut et tu le modifies en fonction du paramètre passé en $_GET.

http://www.apprendre-php.com/tutoriels/ ... -post.html

Re: pagination sans bdd

Posté : 11 févr. 2012, 00:47
par casper62110
C'est bien compliquer tous cela peut être je pourrez avoir un bout de code svp

j ai fait plein de manipulation, plein de site mais toujours aucun resultat :(

merci

Re: pagination sans bdd

Posté : 11 févr. 2012, 11:12
par Ryle
En fait, il te faut surtout comprendre le principe, tu verras que le code viendra tout seul ensuite :)

Donc première chose à faire, si tu n'as pas de base de données, c'est que tes articles soient stockés dans un tableau (à une ou plusieurs dimensions)
$monTableau[1] = article1
$monTableau[2] = article2
...
ou 
$monTableau[1] = array (
   'titre' => "titre de l'article 1"
   , 'contenu' => "contenu de l'article"
   , ...
);
$monTableau[2] = array (
   'titre' => "titre de l'article 2"
   , ...
);
Ca c'est pour remplacer ta base. Grâce à cela tu peux connaitre le nombre d'article avec un simple count($monTableau).

Ensuite, concernant l'affichage, pour avoir 5 articles par page, il te faut utiliser une boucle qui va afficher les articles 1 à 5 sur la première page, puis les articles 6 à 10 sur la seconde etc. Il faut donc que lorsque tu charges ta page, passer un paramètre pour dire quelle page tu veux afficher ou simplement quel est le numéro de l'article à afficher en premier. C'est le principe du $start que te propose Shenryu :)

Côté code, tu aurais alors juste à récupérer la valeur de ce premier article et faire une simple boucle :
if (isSet($_GET['start']) // si une page est demandée dans l'url
   $start = $_GET['start'];
else // sinon on commence à l'article 1
   $start = 1;

// pour $i = au numéro de l'article de départ ; tant que $i est inférieur à ce numéro + 5 articles à afficher 
for ($i = $start; $i < $start+5 ; $i++) {
   echo $monTableau[$i]['titre']; // affiche le titre de l'article $i
   ...
}
Est-ce plus clair ? :)

Re: pagination sans bdd

Posté : 11 févr. 2012, 23:57
par casper62110
oui merci