Array ok avec pagination
Résolu/Fermé
sebfitzmaurice
Messages postés
11
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
24 mars 2008
-
12 mars 2008 à 20:07
sebfitzmaurice Messages postés 11 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 24 mars 2008 - 14 mars 2008 à 17:37
sebfitzmaurice Messages postés 11 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 24 mars 2008 - 14 mars 2008 à 17:37
3 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
12 mars 2008 à 20:32
12 mars 2008 à 20:32
Bonsoir,
pourquoi ne fais tu pas simplement:
pourquoi ne fais tu pas simplement:
$pageOK = array ('0' => 'page1.html','1'=>'page2.html' etc..) if ( (isset($_GET['page'])) && (array_key_exists($_GET['page'], $pageOK) { include($pageOK[$_GET['page']]); } else { include('choix_sports.html'); }
sebfitzmaurice
Messages postés
11
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
24 mars 2008
14 mars 2008 à 17:06
14 mars 2008 à 17:06
Merci beaucoup de tes réponses et de ta patience, peut-etre que ce fait trop longtemp que j'essaie ce bout de code ,
j'y suis un peux mêlé... mais bon , je dois continuer !
pagination.php
a href=\"voir-annonce.php?page=$suiv\">suiv »</a>
index.php
<?php
$pageOK= array('0' => ' 1.php', <------------------- Esse de cette facon ou
'1' => ' 2.php',
'$suiv' => ' .php'); <------------------- Peut-etre comme ca?
if (isset($_GET['voir-annonce']) && array_key_exists($_GET['voir-annonce'], $pageOK)) {
include($pageOK[$_GET['voir-annonce']]);
}
?>
Merci encore!!!
j'y suis un peux mêlé... mais bon , je dois continuer !
pagination.php
a href=\"voir-annonce.php?page=$suiv\">suiv »</a>
index.php
<?php
$pageOK= array('0' => ' 1.php', <------------------- Esse de cette facon ou
'1' => ' 2.php',
'$suiv' => ' .php'); <------------------- Peut-etre comme ca?
if (isset($_GET['voir-annonce']) && array_key_exists($_GET['voir-annonce'], $pageOK)) {
include($pageOK[$_GET['voir-annonce']]);
}
?>
Merci encore!!!
sebfitzmaurice
Messages postés
11
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
24 mars 2008
14 mars 2008 à 17:37
14 mars 2008 à 17:37
Le forum me renvoie le code tous mêlé, j'essaie encore ...
pagination.php
a href=\"index.php?voir-annonce=$suiv\">suiv »</a>
index.php
<?php
$pageOK= array(
'0' => ' 1.php', <------------------- de cette facon? ou
'1' => ' 2.php',
'$suiv' => ' .php', <------------------- Peut-etre comme ca?
'2' => '?voir-annonce=2','3'=>'?voir-annonce=3'); <------------------- ou comme ca?
if (isset($_GET['voir-annonce']) && array_key_exists($_GET['voir-annonce'], $pageOK)) {
include($pageOK[$_GET['voir-annonce']]);
}
Bon... si je fait echo $suiv; ca me donne 2 comme résultat,
comme je le disais href="index.php?voir annonce=$suiv">suiv »
est la variable à déclarer, donc je dois avoir comme résultat
index.php?voir-annonce=2 ou index.php?voir-annonce=3 et ect..
c'est ce que j'essais de faire avec mon ARRAY ...
Et encore merci de votre patience ,
ou sinon connais-tu un autre bon systeme de pagination???
?>
pagination.php
a href=\"index.php?voir-annonce=$suiv\">suiv »</a>
index.php
<?php
$pageOK= array(
'0' => ' 1.php', <------------------- de cette facon? ou
'1' => ' 2.php',
'$suiv' => ' .php', <------------------- Peut-etre comme ca?
'2' => '?voir-annonce=2','3'=>'?voir-annonce=3'); <------------------- ou comme ca?
if (isset($_GET['voir-annonce']) && array_key_exists($_GET['voir-annonce'], $pageOK)) {
include($pageOK[$_GET['voir-annonce']]);
}
Bon... si je fait echo $suiv; ca me donne 2 comme résultat,
comme je le disais href="index.php?voir annonce=$suiv">suiv »
est la variable à déclarer, donc je dois avoir comme résultat
index.php?voir-annonce=2 ou index.php?voir-annonce=3 et ect..
c'est ce que j'essais de faire avec mon ARRAY ...
Et encore merci de votre patience ,
ou sinon connais-tu un autre bon systeme de pagination???
?>
13 mars 2008 à 04:57
Je vous donnes mon code parce que je suis un peut décourager , j'espère trouver une solution et encore merci !!!
index.php
<div id="choix_sport">
<?php
// On définit le tableau contenant les pages autorisées
$pageOK = array( 'voir-annonce' => 'voir-annonce.php',
'choix_sports ' => 'choix_sports.html',
'login' =>'login.html',
'login1' =>'login1.php',
'formulaire-annonce' =>'formulaire-annonce.php',
'admin03' =>'admin03.php',
'votre_annonce03' =>'votre_annonce03.php',
'affiche_annonce' =>'affiche_annonce.php',
'edition_de_tableau' =>'edition_de_tableau.php',
'traite_efface_annonce' =>'traite_efface_annonce.php',
'affiche_choix' =>'affiche_choix.php',
'affiche_sous_choix' =>'affiche_sous_choix.php',
'traite_change_text' =>'traite_change_text.php');
// On teste que le paramètre d'url existe et qu'il est bien autorisé
if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) && (array_key_exists($_GET['page'],
$pageOK))) {
include($pageOK[$_GET['page']]); // Nous appelons le contenu central de la page
} else {
include('choix_sports.html'); // Page par défaut quant elle n'existe pas dans le tableau
}
?>
pagination.php
<?php
function pagination($total,$courante)
{
$prec = $courante - 1; // numéro de la page précédente
$suiv = $courante + 1; // numéro de la page suivante
$avder = $total - 1; // avant dernière page
$adjacentes = 3; // nombre de pages à afficher de chaque côté de la page courante
$pagination = ""; // s'il n'ya pas au moins deux pages, on n'affiche rien
if($total > 1) // il y a au moins deux pages
{
$pagination .= "<div class=\"pagination\">\n";
// on affiche d'abord le bouton précédent
if ($courante == 2) // si on est sur la page 2, le bouton précédent renvoit sur la page initiale, il est inutile de mettre ?page=1 sinon on se retrouve avec un duplicate content
$pagination.= "<a href=\"voir-annonce.php\">« préc</a>";
elseif ($courante > 2) // si la page actuelle est supérieure à 2 le bouton précédent renvoit sur la page dont le numéro est immédiatement inférieur
$pagination.= "<a href=\"voir-annonce.php?page=$prec\">« préc</a>";
else // sinon on est sur la page 1 : on désactive le bouton précédent. on est nécessairement sur la page 1 car on a fait le traitement des pages dans index.php, pas besoin de mettre elseif ($courante==1)
$pagination.= "<span class=\"desactive\">« préc</span>";
// CAS 1 : il n'y a pas assez de pages pour tronquer, on les affiche toutes (voir figure 1)
if ($total < 7 + ($adjacentes * 2))
{
$pagination.= ($courante == 1) ? "<span class=\"courante\">1</span>" : "<a href=\"voir-annonce.php\">1</a>";
// pour les pages restantes on utilise une simple boucle for
for ($compteur = 2; $compteur <= $total; $compteur++)
{
if ($compteur == $courante) // on affiche la page courante différemment pour la mettre en évidence
$pagination.= "<span class=\"courante\">$compteur</span>";
else
$pagination.= "<a href=\"voir-annonce.php?page=$compteur\">$compteur</a>";
}
}
// CAS 2 : on a assez de pages pour tronquer en fonction de la page actuelle
elseif($total > 5 + ($adjacentes * 2))
{
/*
on est placé dans la partie proche des premières pages, on tronque donc la fin de la pagination.
l'affichage sera 9 pages à gauche ... 2 pages à droite (voir figure 2)
*/
if($courante < 1 + ($adjacentes * 2))
{
// on affiche la page 1 comme vu précédemment
$pagination.= ($courante == 1) ? "<span class=\"courante\">1</span>" : "<a href=\"voir-annonce.php\">1</a>";
// puis les huit pages suivantes
for ($compteur = 2; $compteur < 4 + ($adjacentes * 2); $compteur++)
{
if ($compteur == $courante)
$pagination.= "<span class=\"courante\">$compteur</span>";
else
$pagination.= "<a href=\"voir-annonce.php?page=$compteur\">$compteur</a>";
}
// les ... pour marquer la troncature
$pagination.= " ... ";
// et enfin les deux dernières pages
$pagination.= "<a href=\"voir-annonce.php?page=$avder\">$avder</a>";
$pagination.= "<a href=\"voir-annonce.php?page=$total\">$total</a>";
}
/*
on est placé dans la partie centrale de notre pagination, on tronque donc le début et la fin de la pagination.
l'affichage sera 2 pages à gauche ... 7 pages au centre ... 2 pages à droite (voir figure 3)
*/
elseif($total - ($adjacentes * 2) > $courante && $courante > ($adjacentes * 2))
{
// on affiche les deux premières pages
$pagination.= "<a href=\"voir-annonce.php\">1</a>";
$pagination.= "<a href=\"voir-annonce.php?page=2\">2</a>";
// les ... pour marquer la troncature
$pagination.= " ... ";
// puis sept pages : les trois précédent la page courante, la page courante, puis les trois lui succédant
for ($compteur = $courante - $adjacentes; $compteur <= $courante + $adjacentes; $compteur++)
{
if ($compteur == $courante)
$pagination.= "<span class=\"courante\">$compteur</span>";
else
$pagination.= "<a href=\"voir-annonce.php?page=$compteur\">$compteur</a>";
}
// les ... pour marquer la troncature
$pagination.= " ... ";
// et enfin les deux dernière spages
$pagination.= "<a href=\"voir-annonce.php?page=$avder\">$avder</a>";
$pagination.= "<a href=\"voir-annonce.php?page=$total\">$total</a>";
}
/*
sinon on est placé dans la partie de droite, on tronque donc le début de la pagination.
l'affichage sera 2 pages à gauche ... 9 pages à droite (voir figure 4)
*/
else
{
// on affiche les deux premières pages
$pagination.= "<a href=\"voir-annonce.php\">1</a>";
$pagination.= "<a href=\"voir-annonce.php?page=2\">2</a>";
// les ... pour marquer la troncature
$pagination.= " ... ";
// et enfin les neuf dernières pages
for ($compteur = $total - (2 + ($adjacentes * 2)); $compteur <= $total; $compteur++)
{
if ($compteur == $courante)
$pagination.= "<span class=\"courante\">$compteur</span>";
else
$pagination.= "<a href=\"voir-annonce.php?page=$compteur\">$compteur</a>";
}
}
}
// pour finir on affiche le bouton suivant
if ($courante < $compteur - 1)
$pagination.= "<a href=\"voir-annonce.php?page=$suiv\">suiv »</a>\n";
else
$pagination.= "<span class=\"desactive\">suiv »</span>\n";
$pagination.= "</div>\n";
}
// et on retourne $pagination au programme appelant la fonction
return ($pagination);
}
?>
voir-annonce.php
include 'pagination.php';
$query = mysql_query('SELECT COUNT(*) FROM annonce') or die(mysql_error());
$nb_entrees = mysql_result($query,0,0);
$entrees_par_page = 5;
$total_pages = ceil($nb_entrees/$entrees_par_page);
if ($page=='page2') {include('page2.php');}
if(!isset($_GET['page'])){
$page_courante = 1;
} else {
$page = $_GET['page'];
if ($page<1) $page_courante=1;
elseif ($page>$total_pages) $page_courante=$total_pages;
else $page_courante=$page;
}
$start = ($page_courante * $entrees_par_page - $entrees_par_page);
$query = "SELECT nbrann,nom,annonce,prix,photo,email FROM annonce LIMIT $start, $entrees_par_page";
$resultat = mysql_query($query);
while($item = mysql_fetch_array($resultat)) {
bla...bla...bla... Merci !!!!!
13 mars 2008 à 13:25
if ((isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) && array_key_exists($_GET['page'],$pageOK)))
et tu peux alléger en supprimant des parenthèses.
essayes en remplaçant par:
= test si on a reçu l'info page et si elle existe comme clef dans l'array