8722 sujets

Développement web côté serveur, CMS

Bonjour, après des heures et des heures de recherche je suis perdu !

j'aimerai faire une pagination !

avec le code ci-jont ca marche très bien

Resultat :

< < PAGE PRÉCÉDENTE 1 2 3 4 5 6 7 8 PAGE SUIVANTE > >

ce que j'aimerais

< < PAGE PRÉCÉDENTE 1 2 3 .. 6 7 8 PAGE SUIVANTE > >


<?php require_once('Connections/db.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$currentPage = $_SERVER["PHP_SELF"];

$maxRows_les_offres = 10;
$pageNum_les_offres = 0;
if (isset($_GET['pageNum_les_offres'])) {
  $pageNum_les_offres = $_GET['pageNum_les_offres'];
}
$startRow_les_offres = $pageNum_les_offres * $maxRows_les_offres;

mysql_select_db($database_db, $db);
$query_les_offres = "SELECT * FROM offre";
$query_limit_les_offres = sprintf("%s LIMIT %d, %d", $query_les_offres, $startRow_les_offres, $maxRows_les_offres);
$les_offres = mysql_query($query_limit_les_offres, $db) or die(mysql_error());
$row_les_offres = mysql_fetch_assoc($les_offres);

if (isset($_GET['totalRows_les_offres'])) {
  $totalRows_les_offres = $_GET['totalRows_les_offres'];
} else {
  $all_les_offres = mysql_query($query_les_offres);
  $totalRows_les_offres = mysql_num_rows($all_les_offres);
}
$totalPages_les_offres = ceil($totalRows_les_offres/$maxRows_les_offres)-1;




$queryString_les_offres = "";
if (!empty($_SERVER['QUERY_STRING'])) {
  $params = explode("&", $_SERVER['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_les_offres") == false && 
        stristr($param, "totalRows_les_offres") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_les_offres = "&" . htmlentities(implode("&", $newParams));
  }
}
$queryString_les_offres = sprintf("&totalRows_les_offres=%d%s", $totalRows_les_offres, $queryString_les_offres);
?>

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Document sans titre</title>
</head>

<body>
<p>
  <?php do { ?>
    <?php echo $row_les_offres['titre']; ?><br>
    <?php } while ($row_les_offres = mysql_fetch_assoc($les_offres)); ?>
</p>
<p>
  <?php if ($pageNum_les_offres > 0) { // Show if not first page ?>
    <a href="<?php printf("%s?pageNum_les_offres=%d%s", $currentPage, 0, $queryString_les_offres); ?>">< <</a>
    <?php } // Show if not first page ?>
  <?php if ($pageNum_les_offres > 0) { // Show if not first page ?>
    <a href="<?php printf("%s?pageNum_les_offres=%d%s", $currentPage, max(0, $pageNum_les_offres - 1), $queryString_les_offres); ?>">PAGE PR&Eacute;C&Eacute;DENTE</a>
    <?php } // Show if not first page ?>
  <?php // ICI LE CODE A INSERER en l'adaptant au nom de votre jeu d'enregsitrement !
  $last=$totalPages_les_offres+1;
  $current=$pageNum_les_offres+1;
  for ($i = 1; $i <= $last; $i++) {
      if($current==$i){
    echo "<span class='current'> ". $i . "</span>";
   } else { ?>
  <a href="<?php printf("%s?pageNum_les_offres=%d%s", $currentPage, min($totalPages_les_offres, $i-1), $queryString_les_offres); ?>"><?php echo $i;?></a>
  <?php 
   }
  }
  ?>
  <?php if ($pageNum_les_offres < $totalPages_les_offres) { // Show if not last page ?>
    <a href="<?php printf("%s?pageNum_les_offres=%d%s", $currentPage, min($totalPages_les_offres, $pageNum_les_offres + 1), $queryString_les_offres); ?>">PAGE SUIVANTE</a>
    <?php } // Show if not last page ?>
  <?php if ($pageNum_les_offres < $totalPages_les_offres) { // Show if not last page ?>
    <a href="<?php printf("%s?pageNum_les_offres=%d%s", $currentPage, $totalPages_les_offres, $queryString_les_offres); ?>">> ></a>
    <?php } // Show if not last page ?>
</p>
</body>
</html>
<?php
mysql_free_result($les_offres);
?>




Merci d'avance Smiley smile
ben tu prends le nombre de pages et tu prend les 3 premières, les 3 dernières et mets ... entre.
Et ensuite tu t'adaptes.

Sinon tu devrais mettre ton code d'un coté et ton affichage de l'autre. Les pages doivent être structurées. car là c'est pas très lisible et tu dois t’embêter à mettre des <?php ?> partout.

function GetTriplet($init, $limit){

$afnavig = $init;

for($i=0; $i<$limit;$i++){
     echo $afnavig;
     $afnavig++;
}


ensuite en fonction du nombre d'occurences et de pages et de la position tu fait appel à la fonction
if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }


lol y'a pas de version 6 de php Smiley cligne