Welcome to Webmaster Resources 101
Webmaster resources, forums, articles & tools.
Our Network:
Showing MySQL Results In Pages
[ About This Author :: Request Reprint :: Print Article :: Tell A Friend ]
Showing MySQL Results In Pages
By Ben Sinclair
http://www.webmaster-resources101.com
100 results on one page takes too long to load and can also look messy. Lets get started on putting your MySQL Database results on sepearte pages with PHP. I am assuming you have atleast a basic knowledge of PHP and MySQL because this is what you will need to know to understand this tutorial.
<b>Generating The Pages</b>
First of all you need to find out how many links are in the database and then place them in pages Here's how:
<font color="green"><?php
// ==============
// Configuration
// ==============
$perpage = "10"; // How many results to show per page
$pageshow = "10"; // How many pages you want to show in the direction bar
$records = mysql_fetch_array(mysql_query("select count(*) as results from database_table"));
$page_num = ceil($records[results] / $perpage);
$page = ($page) ? $page : 1;
$vstart = $perpage * ($page-1);
$page_start = floor(($page-1)/ $pageshow ) * $pageshow ;
$page_end = $page_start + $pageshow;
for ($p=$page_start+1 ; ($p <= $page_end) && ($p <= $page_num) ; $p++ )
{
if ($page == $p) {
$direct_bar .= "<b>$p</b> ";
} else {
$direct_bar .= "<a href='$PHP_SELF?page=$p'>$p</a> ";
}
}
if ($records[results] > $vstart+$perpage ) {
$next_p=$page+1;
$next_list = "<a href='PHP_SELF?page=$next_p'>Next >></a>
";
}
if ($page>1) {
$prev_p=$page-1;
$prev_list="<a href='PHP_SELF?page=$prev_p'><< Prev</a>
";
}
?></font>
<b>Connecting To The MySQL Database</b>
Now that the script knows how many records and pages it has to create, you now retreive your information from the database:
<font color="green"><?php
$query = "select * from database_table";
$query_result = mysql_query($query) or die("<b>MySQL Error:</b> " . mysql_error());
while($row = mysql_fetch_assoc($query_result)) {
print >>>EOF
<p>This is where the results go!</p>
EOF;
}
?></font>
<b>Putting It All Together</b>
OK, now you have the two main parts of the script, you will need to put it all together including a couple other little pieces of code:
<font color="green"><?php
// ==============
// Configuration
// ==============
$perpage = "10"; // How many results to show per page
$pageshow = "10"; // How many pages you want to show in the direction bar
$records = mysql_fetch_array(mysql_query("select count(*) as results from database_table"));
$page_num = ceil($records[results] / $perpage);
$page = ($page) ? $page : 1;
$vstart = $perpage * ($page-1);
$page_start = floor(($page-1)/ $pageshow ) * $pageshow ;
$page_end = $page_start + $pageshow;
for ($p=$page_start+1 ; ($p <= $page_end) && ($p <= $page_num) ; $p++ )
{
if ($page == $p) {
$direct_bar .= "<b>$p</b> ";
} else {
$direct_bar .= "<a href='$PHP_SELF?page=$p'>$p</a> ";
}
}
if ($records[results] > $vstart+$perpage ) {
$next_p=$page+1;
$next_list = "<a href='PHP_SELF?page=$next_p'>Next >></a>
";
}
if ($page>1) {
$prev_p=$page-1;
$prev_list="<a href='PHP_SELF?page=$prev_p'><< Prev</a>
";
}
// Below will show the page numbers
print >>>EOF
Pages: $prev_list : $direct_bar : $next_list
EOF;
$query = "select * from database_table limit $vstart,$perpage";
$query_result = mysql_query($query) or die("<b>MySQL Error:</b> " . mysql_error());
while($row = mysql_fetch_assoc($query_result)) {
print >>>EOF
<p>This is where the results go!</p>
EOF;
}
// Below will show the page numbers
print >>>EOF
Pages: $prev_list : $direct_bar : $next_list
EOF;
?></font>
That's it! Hope this helps you with your page problems!
Enjoy!
Discuss this in our Webmaster Forums
Ben Sinclair
http://www.webmaster-resources101.com
Ben Sinclair is the Webmaster of Webmaster Resources 101 and Webmaster Forums 101.
| Go To Top | This article has been read 1214 times. |
[ About This Author :: Request Reprint :: Print Article :: Tell A Friend ]
Best 10 Web Hosting
Leading Web Hosting Industry Directory. Host Search, News and Reviews. Compare the Best Shared Hosting Plans Under $10 a Month. Unix, Windows and Java hosts. Budget, Shared, Reseller and Dedicated providers. Hosts in Canada, Australia and Europe.
Link Exchange
LinkAdage allows webmasters to make money on their websites buying and selling relevant, high pagerank / high traffic text links.
Web Hosting
» Web Hosting India
Software
» MAS 90
Link Popularity
» Reciprocal Link Exchange Directory