Page de catégorie / question de Pagination
- Brian Jester
- Beginner


- Inscription: Jan 06, 2006
- Messages: 61
- Loc: Bayonne, New Jersey USA
- Status: Offline
Salut
Son long tandis que depuis, j'ai été sur ce forum. comme dit heureux d'être de retour !
Tout comment, sur la question de la pagination. Ce que je suis en train d'accomplir est de faire ce qui suit script écho à certaines catégories de la db sur une page de pagination. Les catégories doivent être sortie dans une table où je peux spécifier le nombre de colonnes en fonction des besoins. Le code de pagination est au-dessous de laquelle essentiellement ont toutes les fonctionnalités que je cherche, elle doit seulement être vérifiée pour les erreurs. Le résultat final devrait être de page / ont les catégories affichées avec l'option de limiter le montant affiché.
Pour référence:
Nom de la base de données : catégories
Nom de la table : catégories
Rangée de sortie : category_name
<html>
<head> <title>Reunite My Site - Category Index</title>
<link rel="stylesheet" type="text/css" href="/css/default.css" media="screen">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<meta name="Description" content="The World's Most Trusted Source For Online Advertising!">
<style type="text/css">
.gradient {
border: 1px solid #000;
background: #c5deea; /* old browsers */
background: -moz-linear-gradient(top, #c5deea 0%, #8abbd7 31%, #066dab 100%); /* firefox */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#c5deea), color-stop(31%,#8abbd7), color-stop(100%,#066dab)); /* webkit */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c5deea', endColorstr='#066dab',GradientType=0 ); /* ie */
}
</style>
</head>
<body>
<script type="text/javascript" src="track.php?mode=js"></script>
<noscript><img src="track.php?mode=img" border="0" alt="" width="1" height="1"></noscript>
<div class="gradient">
<br>
<a name="Top" target="_TOP"> </a>
<div class="pagination white">
<!-- The Following Php Code is the pagination script, which will create pages based on the number of banners in the database. Ex: 2 columns (across) x 5 Rows (down) the page -->
<?php
/* Include your code to connect to DB. */
include('cats_db.php');
/* Your DB table name */
$tbl_name="categories";
// How many adjacent pages should be shown on each side?
$adjacents = 1;
/*
First get total number of rows in data table.
If you have a WHERE clause in your query, make sure you mirror it here.
*/
$query = "SELECT COUNT(*) as num FROM $tbl_name";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
/* Setup vars for query. */
$targetpage = "categories.php"; //your file name (the name of this file)
$limit = 1; //how many items to show per page
$page = $_GET['page'];
if($page)
$st = ($page - 1) * $limit; //first item to display on this page
else
$st = 0; //if no page var is given, set st to 0
/* Get data. */
$sql = "SELECT category_name FROM $tbl_name LIMIT $st, $limit";
$result = mysql_query($sql);
/* Setup page vars for display. */
if ($page == 0) $page = 1; //if no page var is given, default to 1.
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
/*
Now we apply our rules and draw the pagination object.
We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if($lastpage > 1)
{
$pagination .= "";
//previous button
if ($page > 1)
$pagination.= "<a href=\"$targetpage?page=$prev\" class=\"current\"> previous </a>";
else
$pagination.= "<span class=\"disabled\"> previous </span>";
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
}
elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"number\">$counter </span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
$pagination.= "<span class=\"dots\">...</span>";
$pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
$pagination.= "<span class=\"dots\">...</span>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</ a>";
}
$pagination.= "<span class=\"dots\">...</span>";
$pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";
}
//close to end; only hide early pages
else
{
$pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
$pagination.= "<span class=\"dots\">...</span>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
}
}
//next button
if ($page < $counter - 1)
$pagination.= "<a href=\"$targetpage?page=$next\" class=\"number current\"> next </a>";
else
$pagination.= "<span class=\"disabled\"> next </span>";
$pagination.= "</div>\n";
}
// End of Pagination Script //
?>
<!-- Table Output Code -->
<?php
$result = mysql_query("SELECT * FROM category_name") or die(mysql_error());
$numCols = 2;
$numPerCol = ceil(mysql_num_rows($result) / $numCols);
echo "<table valign=\"top\"><tr>";
for($col = 1; $col <= $numCols; $col++) {
echo "<td valign=\"top\">";
for($row = 0; $row < $numPerCol; $row++) {
$resultRow = mysql_fetch_assoc($result);
if($resultRow == false) {
break;
}
// while loop goes here
}
echo "</td>";
}
echo "</tr></table>";
?>
<?=$pagination?>
</div>
<div align="center" valign="absbottom"><a href="main.php#Top" target="_parent">Goto Top of Page</a>
</body>
</html>
Merci pour votre aide à l'avance !
Brian
Son long tandis que depuis, j'ai été sur ce forum. comme dit heureux d'être de retour !
Tout comment, sur la question de la pagination. Ce que je suis en train d'accomplir est de faire ce qui suit script écho à certaines catégories de la db sur une page de pagination. Les catégories doivent être sortie dans une table où je peux spécifier le nombre de colonnes en fonction des besoins. Le code de pagination est au-dessous de laquelle essentiellement ont toutes les fonctionnalités que je cherche, elle doit seulement être vérifiée pour les erreurs. Le résultat final devrait être de page / ont les catégories affichées avec l'option de limiter le montant affiché.
Pour référence:
Nom de la base de données : catégories
Nom de la table : catégories
Rangée de sortie : category_name
Code: [ Select ]
<html>
<head> <title>Reunite My Site - Category Index</title>
<link rel="stylesheet" type="text/css" href="/css/default.css" media="screen">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<meta name="Description" content="The World's Most Trusted Source For Online Advertising!">
<style type="text/css">
.gradient {
border: 1px solid #000;
background: #c5deea; /* old browsers */
background: -moz-linear-gradient(top, #c5deea 0%, #8abbd7 31%, #066dab 100%); /* firefox */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#c5deea), color-stop(31%,#8abbd7), color-stop(100%,#066dab)); /* webkit */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c5deea', endColorstr='#066dab',GradientType=0 ); /* ie */
}
</style>
</head>
<body>
<script type="text/javascript" src="track.php?mode=js"></script>
<noscript><img src="track.php?mode=img" border="0" alt="" width="1" height="1"></noscript>
<div class="gradient">
<br>
<a name="Top" target="_TOP"> </a>
<div class="pagination white">
<!-- The Following Php Code is the pagination script, which will create pages based on the number of banners in the database. Ex: 2 columns (across) x 5 Rows (down) the page -->
<?php
/* Include your code to connect to DB. */
include('cats_db.php');
/* Your DB table name */
$tbl_name="categories";
// How many adjacent pages should be shown on each side?
$adjacents = 1;
/*
First get total number of rows in data table.
If you have a WHERE clause in your query, make sure you mirror it here.
*/
$query = "SELECT COUNT(*) as num FROM $tbl_name";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
/* Setup vars for query. */
$targetpage = "categories.php"; //your file name (the name of this file)
$limit = 1; //how many items to show per page
$page = $_GET['page'];
if($page)
$st = ($page - 1) * $limit; //first item to display on this page
else
$st = 0; //if no page var is given, set st to 0
/* Get data. */
$sql = "SELECT category_name FROM $tbl_name LIMIT $st, $limit";
$result = mysql_query($sql);
/* Setup page vars for display. */
if ($page == 0) $page = 1; //if no page var is given, default to 1.
$prev = $page - 1; //previous page is page - 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.
$lpm1 = $lastpage - 1; //last page minus 1
/*
Now we apply our rules and draw the pagination object.
We're actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = "";
if($lastpage > 1)
{
$pagination .= "";
//previous button
if ($page > 1)
$pagination.= "<a href=\"$targetpage?page=$prev\" class=\"current\"> previous </a>";
else
$pagination.= "<span class=\"disabled\"> previous </span>";
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
}
elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"number\">$counter </span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
$pagination.= "<span class=\"dots\">...</span>";
$pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";
}
//in middle; hide some front and some back
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
$pagination.= "<span class=\"dots\">...</span>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</ a>";
}
$pagination.= "<span class=\"dots\">...</span>";
$pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";
}
//close to end; only hide early pages
else
{
$pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
$pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
$pagination.= "<span class=\"dots\">...</span>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<span class=\"number\">$counter</span>";
else
$pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
}
}
}
//next button
if ($page < $counter - 1)
$pagination.= "<a href=\"$targetpage?page=$next\" class=\"number current\"> next </a>";
else
$pagination.= "<span class=\"disabled\"> next </span>";
$pagination.= "</div>\n";
}
// End of Pagination Script //
?>
<!-- Table Output Code -->
<?php
$result = mysql_query("SELECT * FROM category_name") or die(mysql_error());
$numCols = 2;
$numPerCol = ceil(mysql_num_rows($result) / $numCols);
echo "<table valign=\"top\"><tr>";
for($col = 1; $col <= $numCols; $col++) {
echo "<td valign=\"top\">";
for($row = 0; $row < $numPerCol; $row++) {
$resultRow = mysql_fetch_assoc($result);
if($resultRow == false) {
break;
}
// while loop goes here
}
echo "</td>";
}
echo "</tr></table>";
?>
<?=$pagination?>
</div>
<div align="center" valign="absbottom"><a href="main.php#Top" target="_parent">Goto Top of Page</a>
</body>
</html>
- <html>
- <head> <title>Reunite My Site - Category Index</title>
- <link rel="stylesheet" type="text/css" href="/css/default.css" media="screen">
- <meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
- <meta name="Description" content="The World's Most Trusted Source For Online Advertising!">
- <style type="text/css">
- .gradient {
- border: 1px solid #000;
- background: #c5deea; /* old browsers */
- background: -moz-linear-gradient(top, #c5deea 0%, #8abbd7 31%, #066dab 100%); /* firefox */
- background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#c5deea), color-stop(31%,#8abbd7), color-stop(100%,#066dab)); /* webkit */
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#c5deea', endColorstr='#066dab',GradientType=0 ); /* ie */
- }
- </style>
- </head>
- <body>
- <script type="text/javascript" src="track.php?mode=js"></script>
- <noscript><img src="track.php?mode=img" border="0" alt="" width="1" height="1"></noscript>
- <div class="gradient">
- <br>
- <a name="Top" target="_TOP"> </a>
- <div class="pagination white">
- <!-- The Following Php Code is the pagination script, which will create pages based on the number of banners in the database. Ex: 2 columns (across) x 5 Rows (down) the page -->
- <?php
- /* Include your code to connect to DB. */
- include('cats_db.php');
- /* Your DB table name */
- $tbl_name="categories";
- // How many adjacent pages should be shown on each side?
- $adjacents = 1;
- /*
- First get total number of rows in data table.
- If you have a WHERE clause in your query, make sure you mirror it here.
- */
- $query = "SELECT COUNT(*) as num FROM $tbl_name";
- $total_pages = mysql_fetch_array(mysql_query($query));
- $total_pages = $total_pages[num];
- /* Setup vars for query. */
- $targetpage = "categories.php"; //your file name (the name of this file)
- $limit = 1; //how many items to show per page
- $page = $_GET['page'];
- if($page)
- $st = ($page - 1) * $limit; //first item to display on this page
- else
- $st = 0; //if no page var is given, set st to 0
- /* Get data. */
- $sql = "SELECT category_name FROM $tbl_name LIMIT $st, $limit";
- $result = mysql_query($sql);
- /* Setup page vars for display. */
- if ($page == 0) $page = 1; //if no page var is given, default to 1.
- $prev = $page - 1; //previous page is page - 1
- $next = $page + 1; //next page is page + 1
- $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.
- $lpm1 = $lastpage - 1; //last page minus 1
- /*
- Now we apply our rules and draw the pagination object.
- We're actually saving the code to a variable in case we want to draw it more than once.
- */
- $pagination = "";
- if($lastpage > 1)
- {
- $pagination .= "";
- //previous button
- if ($page > 1)
- $pagination.= "<a href=\"$targetpage?page=$prev\" class=\"current\"> previous </a>";
- else
- $pagination.= "<span class=\"disabled\"> previous </span>";
- //pages
- if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
- {
- for ($counter = 1; $counter <= $lastpage; $counter++)
- {
- if ($counter == $page)
- $pagination.= "<span class=\"number\">$counter</span>";
- else
- $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
- }
- }
- elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
- {
- //close to beginning; only hide later pages
- if($page < 1 + ($adjacents * 2))
- {
- for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
- {
- if ($counter == $page)
- $pagination.= "<span class=\"number\">$counter </span>";
- else
- $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
- }
- $pagination.= "<span class=\"dots\">...</span>";
- $pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
- $pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";
- }
- //in middle; hide some front and some back
- elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
- {
- $pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
- $pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
- $pagination.= "<span class=\"dots\">...</span>";
- for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
- {
- if ($counter == $page)
- $pagination.= "<span class=\"number\">$counter</span>";
- else
- $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</ a>";
- }
- $pagination.= "<span class=\"dots\">...</span>";
- $pagination.= "<a href=\"$targetpage?page=$lpm1\" class=\"number\">$lpm1</a>";
- $pagination.= "<a href=\"$targetpage?page=$lastpage\" class=\"number current\">$lastpage</a>";
- }
- //close to end; only hide early pages
- else
- {
- $pagination.= "<a href=\"$targetpage?page=1\" class=\"number\">1</a>";
- $pagination.= "<a href=\"$targetpage?page=2\" class=\"number\">2</a>";
- $pagination.= "<span class=\"dots\">...</span>";
- for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
- {
- if ($counter == $page)
- $pagination.= "<span class=\"number\">$counter</span>";
- else
- $pagination.= "<a href=\"$targetpage?page=$counter\" class=\"number current\">$counter</a>";
- }
- }
- }
- //next button
- if ($page < $counter - 1)
- $pagination.= "<a href=\"$targetpage?page=$next\" class=\"number current\"> next </a>";
- else
- $pagination.= "<span class=\"disabled\"> next </span>";
- $pagination.= "</div>\n";
- }
- // End of Pagination Script //
- ?>
- <!-- Table Output Code -->
- <?php
- $result = mysql_query("SELECT * FROM category_name") or die(mysql_error());
- $numCols = 2;
- $numPerCol = ceil(mysql_num_rows($result) / $numCols);
- echo "<table valign=\"top\"><tr>";
- for($col = 1; $col <= $numCols; $col++) {
- echo "<td valign=\"top\">";
- for($row = 0; $row < $numPerCol; $row++) {
- $resultRow = mysql_fetch_assoc($result);
- if($resultRow == false) {
- break;
- }
- // while loop goes here
- }
- echo "</td>";
- }
- echo "</tr></table>";
- ?>
- <?=$pagination?>
- </div>
- <div align="center" valign="absbottom"><a href="main.php#Top" target="_parent">Goto Top of Page</a>
- </body>
- </html>
Merci pour votre aide à l'avance !
Brian
- Anonymous
- Bot


- Inscription: 25 Feb 2008
- Messages: ?
- Loc: Ozzuland
- Status: Online
Juillet 2nd, 2011, 4:46 pm
Page 1 sur 1
Pour répondre à ce sujet, vous devez vous connecter ou vous enregistrer. Il est gratuit.
Afficher de l'information
- Total des messages de ce sujet: 1 message
- Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 129 invités
- Vous ne pouvez pas poster de nouveaux sujets
- Vous ne pouvez pas répondre aux sujets
- Vous ne pouvez pas éditer vos messages
- Vous ne pouvez pas supprimer vos messages
- Vous ne pouvez pas joindre des fichiers
