?
Solved

Installing a php PAGINATION SCRIPT

Posted on 2008-06-23
12
Medium Priority
?
1,253 Views
Last Modified: 2013-12-13
I would like to know how to install this script and also if this script is correct for my website.  I don't know much about php but I would like an easy way to go from page to page.  Here's the scrite I think I need:

 
<h1>PAGINATION SCRIPT BY <a href="http://www.webune.com">WWW.WEBUNE.COM</a></h1>
<?
  $num_of_items = 200;
  $items_per_page = 9;
  $max_links = 10;
  if($_GET['page_num']){
  $page_num = $_GET['page_num'];
  } else {
  $page_num = 1;
  }
  ?>
<h1>PAGE: <? echo $page_num; ?></h1>
<strong>example:</strong> <br>
<strong>number of items</strong> = <? echo $num_of_items; ?><br>
<strong>number of items per page</strong> = <? echo $items_per_page; ?><br>
<strong>number of links per page</strong> = <? echo $max_links; ?><br>
<?
  ############################################ PAGINATION FUNCTION ########################################
  ############################################ PAGINATION FUNCTION ########################################
  function pagination_link($id, $page_num)
  {
  
  return $_SERVER['PHP_SELF'].'?page_num='.$page_num;
  }
  function pagination($num_of_items, $items_per_page, $id, $page_num, $max_links)
  {
  $total_pages = ceil($num_of_items/$items_per_page);
  if($page_num) {
  if($page_num >1){ 
  $prev = ' &nbsp; <a href="'.pagination_link($id, ($page_num -1 )).'">&lt; PREV</a> &nbsp; '; 
  $first = '<a href="'.$_SERVER['PHP_SELF'].'">&lt;&lt;</a>'; 
  }
  }
  if($page_num <$total_pages){ 
  $next = ' &nbsp; <a href="'.pagination_link($id, ($page_num+1)).'">NEXT &gt;</a> &nbsp; '; 
  $last = ' &nbsp; <a href="'.pagination_link($id, $total_pages).'">&gt;&gt;</a> &nbsp; ';
  }
  echo $first;
  echo $prev;
  $loop = 0;
  if($page_num >= $max_links) {
  $page_counter = ceil($page_num - ($max_links-1));
  } else {
  $page_counter = 1;
  }
  
  if($total_pages < $max_links){
  $max_links = $total_pages;
  }
  do { 
  if($page_counter == $page_num) {
  echo ' &nbsp; <strong>'.$page_counter.'</strong> &nbsp; '; 
  } else {
  echo '<a href="'.pagination_link($id, ($page_counter)).'">'.$page_counter.'</a> &nbsp; ';
  } 
  $page_counter++; $current_page=($page_counter+1);
  $loop++;
  } while ($max_links > $loop);
  echo $next;
  echo $last;
  }
 
?>
<div align="center">
<?
  pagination($num_of_items, $items_per_page, $id, $page_num, $max_links)
  ?> 
</div><br>
<br>
<div align="center"><a href="http://www.webune.com">PHP/MYSQL WEB HOSTING<br>
<img src="http://www.webune.com/images/headers/default_logo.jpg" border="0"></a></div>

Open in new window

0
Comment
Question by:Freejoy
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
  • 2
  • +1
12 Comments
 
LVL 1

Accepted Solution

by:
oku86 earned 672 total points
ID: 21844686
Pagination works best using a database driven website - i've attached some code that is alot less confusing to look at then what you have posted :)

First of all this code will show 25 records per page using $max - this can be changed to whtever you wish

Then a query is run to select all the information you want to display

the pagination links will be like

1 - 2 - 3 - 4 - 5 etcttc

<?php
 
$host = "localhost"; 
$user = "username"; 
$pass = "password"; 
$db = "database";
 
 
mysql_connect($host,$user,$pass) or die("ERROR:".mysql_error());
mysql_select_db($db) or die("ERROR DB:".mysql_error()); 
 
 
$max = 25; 
$p = $_GET['p'];
if(empty($p))
{
$p = 1;
}
$limits = ($p - 1) * $max; 
//view the news article!
if(isset($_GET['act']) && $_GET['act'] == "view")
{
$id = $_GET['id'];
$sql = mysql_query("SELECT * FROM tablename WHERE id = '$id' ORDER BY domain_name ASC");
while($r = mysql_fetch_array($sql))
{
$id = $r['id'];
$example1 = $r['example1'];
$example2 = $r['example2'];
$example3 = $r['example3'];
$example4 = $r['example4'];
 
 
echo "<div><p>$example1</p><p>$example2</p><p>$example3</p></div>"; //ignore this
}
 
}else{
 
 
$sql = mysql_query("SELECT * FROM tablename LIMIT ".$limits.",$max") or die(mysql_error());
 
$totalres = mysql_result(mysql_query("SELECT COUNT(id) AS tot FROM tablename"),0);	
 
$totalpages = ceil($totalres / $max); 
 
//what will be displayed
 
echo "
 
<table width='320' border='0'>
  <tr>
    <td class='style21'><div align='center'><b>example</b></div></td>
    <td class='style21'><div align='center'><b>example1</b></div></td>
  </tr>";
while($r = mysql_fetch_array($sql))
{
$id = $r['id'];
$example1 = $r['example1'];
$example2 = $r['example2'];
$example3 = $r['example3'];
$example4 = $r['example4'];
 
echo "<tr>
    <td class='style19'>$example1/a></td>
    <td class='style19'><div align='center'>$example2</div</td>
  </tr>";
}
//close up the table
echo "</tr></table><BR>";
 
 
for($i = 1; $i <= $totalpages; $i++){ 
//this is the pagination link
echo "<span class='style19'><a href='link.php?p=$i'>$i</a> - </span>";
 
}
}
 
?>

Open in new window

0
 

Author Comment

by:Freejoy
ID: 21845542
Thank You,
How do I put this into my page?  How does it work?  Do I have to name the pages "...page1.php," "...page2.php" ect.?

0
 
LVL 9

Assisted Solution

by:Sander Stad
Sander Stad earned 672 total points
ID: 21845568
Maybe this is not really what you want but there are several cms programs that have this functionality build in. Some of these systems are CMSMS, Drupal and Joomla. Maybe you should take a look at that.
0
WordPress Tutorial 2: Terminology

An important part of learning any new piece of software is understanding the terminology it uses. Thankfully WordPress uses fairly simple names for everything that make it easy to start using the software.

 

Author Comment

by:Freejoy
ID: 21846209
What I would like to do is turn pages.  That's all for now.  Say I have 20-30 pages, I would like to find some kind of script to turn pages.  All my stuff will already be on the pages.  These scripts seem close but I don't need a qty items per page at this time.  But I don't understand how to get them to turn the page..  I would really like something like this at the top and bottom of my pages that is easy to use:

<<< 1 2 3 4 5 >>>

That's all

Thanks
0
 
LVL 10

Assisted Solution

by:oliverpolden
oliverpolden earned 672 total points
ID: 21846383
Hi this question comes up under my Drupal filter.  If a Drupal answer is what you're after, you can use the Paging module: http://drupal.org/project/paging  Very handy, you can set your own break tag such as <!-- break --> and Drupal will split the pages for you.  If you have a rich text editor with a page break button, you can look at the code the button generates and set that as the page break tag.  If you or anyone need any help setting this up, feel free to ask or visit my site at: www.e3m.co.uk 
0
 
LVL 1

Expert Comment

by:oku86
ID: 21846424
Well for example if you were to use the method i posted you would need to set up a MySQL database and set up a table within the database - this is quite simple for a beginner to do and is quite fun to learn

http://www.tizag.com/mysqlTutorial/

Each record is given an ID - so imagine each record being a page

so as you follow the tutorial - linked above you will learn how to insert information into the mysql database

So if you set the $max = 1 - it will return 1 result per page and so if u have 30 pages of data it will looke like

1 2 3 4 5 6 7 etc etc

if this script is set to the index.php - each page will be index.php?p=1,  index.php?p=2 etc etc

But a content management system may make life easier but if u want to learn how to do this yourself its ahella lot more fun then installing an automated script
0
 
LVL 1

Expert Comment

by:oku86
ID: 21846655
I apologize for double posting

here is my example in action - just quickly set it up

http://verecia.info/
0
 

Author Comment

by:Freejoy
ID: 21847544
oliverpolden:
I downloaded the   linkfilter-6.x-1.1.zip. from your site and opened it.  This is the first thing it says to do:

1) Unzip the linkfilter.zip kit in the modules directory of your Drupal
    setup, usually sites/all/modules

I have no idea what they mean here, for one I don't have a Drupal setup.

Is there actually a working example of this?

******************************************
oku86:

I know I could spend time learning all about this.  I need something in the hurry up!
Oh yea, when i clicked on your link red flags went off and One Care popped up warring me about a Trojan.

I've been up all night I going to sleep on this.  good night


0
 
LVL 1

Expert Comment

by:oku86
ID: 21850233
im not sure how my domain sparked a trojan
0
 
LVL 10

Expert Comment

by:oliverpolden
ID: 21961668
Hey, sorry, didn't realise you had replied!

Are you still looking for a solution.  Drupal would be a complete change to your website. You would need to put everything into it, but if your site is basic then you could have it up and running in a couple of hours.  You could have most of the stuff on www.e3m.co.uk up and running including a theme of your choice.

I can't find any examples of paging and I don't have time right now to set it up but I could in a few hours (after work) if you would like.  There is a teeny bit here however: http://drupalzilla.com/module/paging

I'm keen to write a tutorial on setting up Drupal from a new user perspective so I'm willing to give you help setting it up.
0
 
LVL 1

Expert Comment

by:oku86
ID: 22080299
Your best option then would be to use Drupal - as its virtually all done for you - even thought it may take a few hours to figure out it will take less time + frustration coding it manually
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Developers of all skill levels should learn to use current best practices when developing websites. However many developers, new and old, fall into the trap of using deprecated features because this is what so many tutorials and books tell them to u…
This article discusses how to create an extensible mechanism for linked drop downs.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to count occurrences of each item in an array.
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question