<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<link rel="stylesheet" TYPE="text/css" href="css/style.css" />
</head>
<body>
<table width="560" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
Nos tissus :
</td>
</tr>
</table>
<?php
//function pagination($current_page, $nb_pages, $link='?menu=4&cat=2&page=%d', $around=3, $firstlast=1){
function pagination($current, $nb_page, $link=false, $arround=3, $firstLast=1){
$value = "?menu=4&cat=".$_GET["cat"]."&page=%d";
$link = !$link ? $value : $link;
$pagination = ' ';
if (!ereg('%d', $link)) $link .= '%d';
if ($nb_pages > 1){
// Lien précédent
if ($current_page > 1)
$pagination .= '<a class="prevnext" href="'.sprintf($link, $current_page-1).'" title="Page précédente">« Précédent</a>';
else
$pagination .= '<span class="prevnext disabled">« Précédent</span>';
// Lien(s) début
for ($i=1 ; $i<=$firstlast ; $i++){
$pagination .= ' ';
$pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// ... après pages début ?
if (($current_page-$around) > $firstlast+1)
$pagination .= ' …';
// On boucle autour de la page courante
$start = ($current_page-$around)>$firstlast ? $current_page-$around : $firstlast+1;
$end = ($current_page+$around)<=($nb_pages-$firstlast) ? $current_page+$around : $nb_pages-$firstlast;
for ($i=$start ; $i<=$end ; $i++){
$pagination .= ' ';
if ($i==$current_page)
$pagination .= '<span class="current">'.$i.'</span>';
else
$pagination .= '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// ... avant page nb_pages ?
if (($current_page+$around) < $nb_pages-$firstlast)
$pagination .= ' …';
// Lien(s) fin
$start = $nb_pages-$firstlast+1;
if($start <= $firstlast) $start = $firstlast+1;
for ($i=$start ; $i<=$nb_pages ; $i++){
$pagination .= ' ';
$pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// Lien suivant
if ($current_page < $nb_pages)
$pagination .= ' <a class="prevnext" href="'.sprintf($link, ($current_page+1)).'" title="Page suivante">Suivant »</a>';
else
$pagination .= ' <span class="prevnext disabled">Suivant »</span>';
}
return $pagination;
}
// Numero de page (1 par défaut)
if(isset($_GET['page']) && is_numeric($_GET['page']))
$page = $_GET['page'];
else
$page = 1;
// Nombre d'info par page
$pagination = 35;
// Numéro du 1er enregistrement à lire
$limit_start = ($page - 1) * $pagination;
// Nb d'enregistrement total
Connect_mySql();
$nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM article WHERE supArt='.$_GET['cat'].'');
$nb_total = mysql_fetch_array($nb_total);
$nb_total = $nb_total['nb_total'];
// Pagination
$nb_pages = ceil($nb_total / $pagination);
// liste des articles
Connect_mySql();
$query = "SELECT * FROM article WHERE supArt = ".$_GET['cat']." ORDER BY image ASC LIMIT ".$limit_start.",".$pagination;
$result = mysql_query($query) or die("<font color='#006600'> Erreur sur la page affiche_liste_art.php - (ligne 85).</font>");
$i = 0;
while($row = mysql_fetch_row($result)){
$i++;
?>
<div class="content">
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?menu=4&art=<?php echo $row[0]; ?>"><img src="./admin/media_tissus/<?php echo $row[12]; ?>" title="<?php echo $row[3]; ?> €/m" border="0" width="75" height="60" /></a>
<br />
<center><?php echo $row[1]; ?></center>
</div>
<?php
}
mysql_close();
?>
<div class="pagination">
<?php echo pagination($page, $nb_pages); ?>
</div>
</body>
</html>
A première vue, je ferais plus comme cela:function pagination($current, $nb_page, $link=false, $arround=3, $firstLast=1){ $value = "?menu=4&cat=".$_GET["cat"]."&page=%d"; $link = !$link ? $value : $link;
function pagination($current = '', $nb_page = '', $link = '', $arround=3, $firstLast=1) {
$value = '?menu=4&cat=' . $_GET['cat'] .'&page=%d';
$link = (empty($link)) ? $value : $link; function pagination($current, $nb_page, $link, $arround=3, $firstLast=1){ /* <----------- ligne 22 */
$link = (isset($link)) ? $link : "?menu=4&cat=".$_GET["cat"]."&page=%d";
-----------------------------
<div class="pagination">
<?php echo pagination($page, $nb_pages); ?> <!-- <------------- ligne 103 -->
</div>
</body>
</html>
---------------------------function pagination($current = '', $nb_page = '', $link = '', $arround=3, $firstLast=1) {
$value = '?menu=4&cat=' . $_GET['cat'] . '&page=%d';
$link = (empty($link)) ? $value : $link;
<?php echo pagination($page, $nb_pages); ?>
Par:
<?php
$page = (isset($page)) ? trim($page) : null;
$nb_pages = (isset($nb_pages)) ? trim($nb_pages) : null;
if(!empty($page) && !empty($nb_pages)) {
echo pagination($page, $nb_pages);
}
else {
echo 'Lien Invalide';
}
?> $pagination = '';
if (!ereg('%d', $link)) $link .= '%d';
if ($nb_pages > 1){
// Lien précédent
if ($current_page > 1)
$pagination .= '<a class="prevnext" href="'.sprintf($link, $current_page-1).'" title="Page précédente">« Précédent</a>';
else
$pagination .= '<span class="prevnext disabled">« Précédent</span>';
// Lien(s) début
for ($i=1 ; $i<=$firstlast ; $i++){
$pagination .= ' ';
$pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// ... après pages début ?
if (($current_page-$around) > $firstlast+1)
$pagination .= ' …';
// On boucle autour de la page courante
$start = ($current_page-$around)>$firstlast ? $current_page-$around : $firstlast+1;
$end = ($current_page+$around)<=($nb_pages-$firstlast) ? $current_page+$around : $nb_pages-$firstlast;
for ($i=$start ; $i<=$end ; $i++){
$pagination .= ' ';
if ($i==$current_page)
$pagination .= '<span class="current">'.$i.'</span>';
else
$pagination .= '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// ... avant page nb_pages ?
if (($current_page+$around) < $nb_pages-$firstlast)
$pagination .= ' …';
// Lien(s) fin
$start = $nb_pages-$firstlast+1;
if($start <= $firstlast) $start = $firstlast+1;
for ($i=$start ; $i<=$nb_pages ; $i++){
$pagination .= ' ';
$pagination .= ($current_page==$i) ? '<span class="current">'.$i.'</span>' : '<a href="'.sprintf($link, $i).'">'.$i.'</a>';
}
// Lien suivant
if ($current_page < $nb_pages)
$pagination .= ' <a class="prevnext" href="'.sprintf($link, ($current_page+1)).'" title="Page suivante">Suivant »</a>';
else
$pagination .= ' <span class="prevnext disabled">Suivant »</span>';
}
rienreturn $pagination;
}
// Numero de page (1 par défaut)
if(isset($_GET['page']) && is_numeric($_GET['page']))
$page = $_GET['page'];
else
$page = 1;
// Nombre d'info par page
$pagination = 20;
// Numéro du 1er enregistrement à lire
$limit_start = ($page - 1) * $pagination;
// Nb d'enregistrement total
Connect_mySql();
$nb_total = mysql_query('SELECT COUNT(*) AS nb_total FROM article WHERE supArt='.$_GET['cat'].'');
$nb_total = mysql_fetch_array($nb_total);
$nb_total = $nb_total['nb_total'];
// Pagination
$nb_pages = ceil($nb_total / $pagination);
// liste des articles
Connect_mySql();
$query = "SELECT * FROM article WHERE supArt = ".$_GET['cat']." ORDER BY image ASC LIMIT ".$limit_start.",".$pagination;
$result = mysql_query($query) or die("<font color='#006600'> Erreur sur la page affiche_liste_art.php - (ligne 85).</font>");
$i = 0;
while($row = mysql_fetch_row($result)){
$i++;
echo "toto";
?>
<div class="content">
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?menu=4&art=<?php echo $row[0]; ?>"><img src="./admin/media_tissus/<?php echo $row[12]; ?>" title="<?php echo $row[3]; ?> €/m" border="0" width="75" height="60" /></a>
<br />
<center><?php echo $row[1]; ?></center>
</div>
<?php
}
mysql_close();
?>
<div class="pagination">
<?php echo pagination($page, $nb_pages); ?>
</div>
</body>
</html>
toto aparait un fois en haut de la page ou plusieurs fois si je l'incère dans la boucle whileecho $current."<br />";
echo $nb_page."<br />";
echo $link."<br />";
echo $arround."<br />";
echo $firstLast;
juste après ton code j'affiche les différentes valeur :if ($nb_pages > 1){
--- code ---
}
juste avant return j'affiche a nouveau les valeurs de variablesecho ' Variable $pagination: ' . var_dump($pagination);
Pour les autres variables, tu peux utiliser la même technique pour savoir a quoi correspond ce que tu affiches...