shang3000
asked on
how can I make result pagination the same like it appears in google.com
Hi All,
my client want me to make pagination for results the sam as google search results pagination
like that :
pages: Back 1 | 2 | 3 | 4 | 5 Next
.....
page 1 content of search results
.....
does any body can help in that (any samples, examples, links, or tutorials ) are welcomed
Best Regards
HG
my client want me to make pagination for results the sam as google search results pagination
like that :
pages: Back 1 | 2 | 3 | 4 | 5 Next
.....
page 1 content of search results
.....
does any body can help in that (any samples, examples, links, or tutorials ) are welcomed
Best Regards
HG
Can you explain a little - what data are you trying to paginate? You get it from database with SQL request? Or it's read already and you have it in some kind of array? It will help to give more precise suggestions.
might be of interest
http://cms.227net.com/php/google_like_pagination
http://code.google.com/p/phppaginator/
http://cms.227net.com/php/google_like_pagination
http://code.google.com/p/phppaginator/
i 'll agree with Itonohito because you have to explain as what kind of data you want to paginate.it's database data or something else?
ASKER
Hi Itonohito,
Hi alex_code,
I meant paginating of data selected from data base
Best regards
HG
Hi alex_code,
I meant paginating of data selected from data base
Best regards
HG
hi again shang3000
take this it is working perfect
<?
########################## ########## ########## ########## ########## #####
# VARIABLE LIST #
# 1) script_page //user assigned (DEFAULT: $PHP_SELF) #
# 1) total_entries //user assigned (DEFAULT: 0) #
# 2) entries_per_page //user assigned (DEFAULT: 25) #
# 6) page_scroll_number //user assigned (DEFAULT: 5) #
# 4) p //URL value (page number) #
# 3) total_pages //calculated value #
# 4) page_number //calculated value #
# 5) offset //calculated value #
# 7) record_begin //calculated value #
# 8) record_end //calculated value #
# 9) page_scroll_begin //calculated value #
# 10) page_scroll_total //calculated value #
# 11) i //counter #
########################## ########## ########## ########## ########## #####
//Sample MySQL Query
//$result = mysql_query("SELECT * FROM database LIMIT $offset, $entries_per_page") or die(mysql_error());
## set $script_page ##
$script_page = $PHP_SELF;
## set $total_entries ##
$total_entries = 0;
## set $entries_per_page ##
$entries_per_page = 25;
## set $page_scroll_number ##
$page_scroll_number = 5;
## set $total_pages ##
$total_pages = ceil($total_entries / $entries_per_page);
## set $page_number ##
if(isset($_REQUEST['p']))
{
if($_REQUEST['p'] > $total_pages)
{
$page_number = $total_pages;
}
elseif($_REQUEST['p'] < 1)
{
$page_number = 1;
}
else
{
$page_number = floor($_REQUEST['p']);
}
}
else
{
$page_number = 1;
}
## set $offset ##
$offset = ($page_number - 1) * $entries_per_page;
#### BEGIN RECORD NUMBERS ####
## set $record_begin, $record_end ##
if($total_entries > 0)
{
$record_begin = $offset + 1;
}
else
{
$record_begin = 0;
}
if($total_entries < ($offset + $entries_per_page))
{
$record_end = $total_entries;
}
else
{
$record_end = $offset + $entries_per_page;
}
print "Displaying Records: ".$record_begin."-".$recor d_end." of ".$total_entries."<br />";
#### END RECORD NUMBERS ####
#### BEGIN PAGINATION ####
if($total_pages > 1){
# First, Previous Links #
if($page_number != 1)
{
if($total_pages > $page_scroll_number)
{
print " <a href=\"".$script_page."?p= 1\">First< /a> ";
}
print " <a href=\"".$script_page."?p= ".($page_n umber - 1)."\">Previous</a> ";
}
## set $page_scroll_begin, $page_scroll_total, $i ##
# Page Number Links #
if($total_pages >= $page_scroll_number)
{
if($page_number > ($page_scroll_number / 2))
{
if(($page_number + ($page_scroll_number / 2)) > $total_pages)
{
$page_scroll_begin = $total_pages - $page_scroll_number + 1;
$page_scroll_total = $page_scroll_begin + $page_scroll_number - 1;
}
else
{
$page_scroll_begin = $page_number - (floor($page_scroll_number / 2));
$page_scroll_total = ($page_number - (floor($page_scroll_number / 2))) + $page_scroll_number - 1;
}
}
else
{
$page_scroll_begin = 1;
$page_scroll_total = $page_scroll_number;
}
for($i = $page_scroll_begin; $i <= $page_scroll_total; $i++)
{
if($i == $page_number)
{
print $i;
}
else
{
print " <a href=\"".$script_page."?p= ".$i."\">" .$i."</a> ";
}
}
}
else
{
for($i = 1; $i <= $total_pages; $i++)
{
if($i == $page_number)
{
print "$i ";
}
else
{
print " <a href=\"".$script_page."?p= ".$i."\">" .$i."</a> ";
}
}
}
# Next, Last Links #
if($page_number < $total_pages)
{
print " <a href=\"".$script_page."?p= ".($page_n umber + 1)."\">Next</a> ";
if($total_pages > $page_scroll_number)
{
print " <a href=\"".$script_page."?p= ".$total_p ages."\">L ast</a> ";
}
}
}
#### END PAGINATION ####
it is a perfect solution that zsoder gave to me in an older question that i had asked.
take this it is working perfect
<?
##########################
# VARIABLE LIST #
# 1) script_page //user assigned (DEFAULT: $PHP_SELF) #
# 1) total_entries //user assigned (DEFAULT: 0) #
# 2) entries_per_page //user assigned (DEFAULT: 25) #
# 6) page_scroll_number //user assigned (DEFAULT: 5) #
# 4) p //URL value (page number) #
# 3) total_pages //calculated value #
# 4) page_number //calculated value #
# 5) offset //calculated value #
# 7) record_begin //calculated value #
# 8) record_end //calculated value #
# 9) page_scroll_begin //calculated value #
# 10) page_scroll_total //calculated value #
# 11) i //counter #
##########################
//Sample MySQL Query
//$result = mysql_query("SELECT * FROM database LIMIT $offset, $entries_per_page") or die(mysql_error());
## set $script_page ##
$script_page = $PHP_SELF;
## set $total_entries ##
$total_entries = 0;
## set $entries_per_page ##
$entries_per_page = 25;
## set $page_scroll_number ##
$page_scroll_number = 5;
## set $total_pages ##
$total_pages = ceil($total_entries / $entries_per_page);
## set $page_number ##
if(isset($_REQUEST['p']))
{
if($_REQUEST['p'] > $total_pages)
{
$page_number = $total_pages;
}
elseif($_REQUEST['p'] < 1)
{
$page_number = 1;
}
else
{
$page_number = floor($_REQUEST['p']);
}
}
else
{
$page_number = 1;
}
## set $offset ##
$offset = ($page_number - 1) * $entries_per_page;
#### BEGIN RECORD NUMBERS ####
## set $record_begin, $record_end ##
if($total_entries > 0)
{
$record_begin = $offset + 1;
}
else
{
$record_begin = 0;
}
if($total_entries < ($offset + $entries_per_page))
{
$record_end = $total_entries;
}
else
{
$record_end = $offset + $entries_per_page;
}
print "Displaying Records: ".$record_begin."-".$recor
#### END RECORD NUMBERS ####
#### BEGIN PAGINATION ####
if($total_pages > 1){
# First, Previous Links #
if($page_number != 1)
{
if($total_pages > $page_scroll_number)
{
print " <a href=\"".$script_page."?p=
}
print " <a href=\"".$script_page."?p=
}
## set $page_scroll_begin, $page_scroll_total, $i ##
# Page Number Links #
if($total_pages >= $page_scroll_number)
{
if($page_number > ($page_scroll_number / 2))
{
if(($page_number + ($page_scroll_number / 2)) > $total_pages)
{
$page_scroll_begin = $total_pages - $page_scroll_number + 1;
$page_scroll_total = $page_scroll_begin + $page_scroll_number - 1;
}
else
{
$page_scroll_begin = $page_number - (floor($page_scroll_number
$page_scroll_total = ($page_number - (floor($page_scroll_number
}
}
else
{
$page_scroll_begin = 1;
$page_scroll_total = $page_scroll_number;
}
for($i = $page_scroll_begin; $i <= $page_scroll_total; $i++)
{
if($i == $page_number)
{
print $i;
}
else
{
print " <a href=\"".$script_page."?p=
}
}
}
else
{
for($i = 1; $i <= $total_pages; $i++)
{
if($i == $page_number)
{
print "$i ";
}
else
{
print " <a href=\"".$script_page."?p=
}
}
}
# Next, Last Links #
if($page_number < $total_pages)
{
print " <a href=\"".$script_page."?p=
if($total_pages > $page_scroll_number)
{
print " <a href=\"".$script_page."?p=
}
}
}
#### END PAGINATION ####
it is a perfect solution that zsoder gave to me in an older question that i had asked.
ASKER
hi alex_code,
thanks very much for your help :)
but I have problems
when I change the sql statement to the following
//Sample MySQL Query
$result = mysql_query("SELECT * FROM timesheet LIMIT $offset, $entries_per_page") or die(mysql_error());
I get the following error
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
and when I change it to the following
$result = mysql_query("SELECT * FROM timesheet ") or die(mysql_error());
it display all the records after the paginatiion
would you please help me in that
Best Regards
HG
thanks very much for your help :)
but I have problems
when I change the sql statement to the following
//Sample MySQL Query
$result = mysql_query("SELECT * FROM timesheet LIMIT $offset, $entries_per_page") or die(mysql_error());
I get the following error
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
and when I change it to the following
$result = mysql_query("SELECT * FROM timesheet ") or die(mysql_error());
it display all the records after the paginatiion
would you please help me in that
Best Regards
HG
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Dear alex_code,
thanks alot for your help I owe you one :)
Best Regards
HG
thanks alot for your help I owe you one :)
Best Regards
HG
Nothing my friend i am glad to help you.
This is an awesome script Alex.. Cant thank you enough..