Dear friends,
i have developed a new module for phpnuke. i need my following function show results in multiple page. My paging function doesn't work good . please help me correct this code .
function memlist(){
global $user, $prefix, $db;
include("header.php");
GraphicAdmin();
echo"<br>";
echo "<center><h5><a href=\"admin.php?op=listmemlist\"><b>"._NOJANMEMLIST."</b></a> | <a href=\"admin.php?op=addmember\"><b>"._NOJANADD."</b></a></h5></center>";
OpenTable();
OpenTable();
echo "<center><b>"._NOJANPENDING."</b></center>";
echo "<table border=\"0\" celpadding=\"1\" celspacing=\"1\" width=\"100%\">"
."<tr>"
."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>"._NOJANNUM."</b>"
."</td>"
."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>"._NOJANNAME."</b>"
."</td>"
."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>"._NOJANLNAME."</b>"
."</td>"
."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>"._NOJANEMAIL."</b>"
."</td>"
."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>"._NOJANWEBSITE."</b>"
."</td>"
."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>"._NOJANFUNCTION."</b>"
."</td>"
."</tr>";
if (!($limit)){
$limit = 2;} // Default results per-page.
if (!($page)){
$page = 0;} // Default page value.
$numresults = mysql_query("SELECT * FROM ".$prefix."_memlisttemp"); // the query.
$numrows = mysql_num_rows($numresults); // Number of rows returned from above query.
if ($numrows == 0){
echo("There is no user waiting approvement!"); // bah, modify the "Not Found" error for your needs.
exit();}
$pages = intval($numrows/$limit); // Number of results pages.
// $pages now contains int of pages, unless there is a remainder from division.
if ($numrows%$limit) {
$pages++;} // has remainder so add one page
$current = ($page/$limit) + 1; // Current page number.
if (($pages < 1) || ($pages == 0)) {
$total = 1;} // If $pages is less than one or equal to 0, total pages is 1.
else {
$total = $pages;} // Else total pages is $pages value.
$first = $page + 1; // The first result.
if (!((($page + $limit) / $limit) >= $pages) && $pages != 1) {
$last = $page + $limit;} //If not last results page, last result equals $page plus $limit.
else{
$last = $numrows;} // If last results page, last result equals total number of results.
$result = $db->sql_query("SELECT * from ".$prefix."_memlisttemp ORDER BY id ASC LIMIT $page, $limit");
while ($row = $db->sql_fetchrow($result)) {
$id = intval($row['id']);
$name = $row['name'];
$lname = $row['lname'];
$email = $row['email'];
$website = $row['website'];
echo "<tr>"
."<td align=\"center\">$id"
."</td>"
."<td align=\"center\">$name"
."</td>"
."<td align=\"center\">$lname"
."</td>"
."<td align=\"center\"><a href=\"mailto:$email\">$email</a>"
."</td>"
."<td align=\"center\"><a target=\"_blank\" href=\"$website\">$website</a>"
."</td>"
."<td align=\"center\"><a href=\"admin.php?op=memdetail&id=$id\">"._NOJANSHOWDETAIL."</a>"
."</td>"
."</tr>";
}
echo "</table>";
if ($page != 0) { // Don't show back link if current page is first page.
$back_page = $page - $limit;
echo("<a href=\"admin.php?op=memlist&page=$back_page&limit=$limit\">back</a> \n");}
for ($i=1; $i <= $pages; $i++) // loop through each page and give link to it.
{
$ppage = $limit*($i - 1);
if ($ppage == $page){
echo("<b>$i</b> \n");} // If current page don't give link, just text.
else{
echo("<a href=\"admin.php?op=memlist&page=$ppage&limit=$limit\">$i</a> \n");}
}
if (!((($page+$limit) / $limit) >= $pages) && $pages != 1) { // If last page don't give next link.
$next_page = $page + $limit;
echo(" <a href=\"admin.php?op=memlist&page=$next_page&limit=$limit\">next</a>\n");}
CloseTable();
include("footer.php");
}
Thank You
Mansour