icon Get the most out of Surmunity, read our tips here! Need an interesting blog to read? You've got to read the Surpass Blog! | Welcome! Please register to access all of our features.

» Surpass Web Hosting Forums » Discussions » PHP, MySQL » Pagination ?

PHP, MySQL General PHP questions. Or go to our PHPsuexec Forum >>

Reply
 
LinkBack Thread Tools Search this Thread Rate Thread
Old January 4th, 2009, 12:22 AM   #1 (permalink)
Registered User
Comfy Contributor
 
hunna03's Avatar
 
Joined in Mar 2006
Lives in KS
Hosted on SH72
181 posts
Gave thanks: 30
Thanked 0 times
Pagination ?

I know very little about pagination. I was having problems with a different script earlier and tried another one. This script works up until the point you click on another link.

The link is "http://localhost/project/search.php?page=2" but all it does is display a blank page, properly formatted. No information, no results, no nothing. How do I fix this?

Code:
<?php
session_start();
include 'connect/project.htm';

$smajor = $_POST['major'];
?>


<html>
<head>
<title>Intranet - <?php echo $smajor ?> Workings</title>

<link href="images/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<link rel="stylesheet" href="singlec.css" type="text/css" />
<link rel="stylesheet" href="constant.css" type="text/css" />

</head>
<body>

<div id="tail">
      <div class="main">
         <div id="top">
            <div id="logo">
               <a href="index.php"><img src="images/logo.png" alt="" /></a>
            </div>
            <div class="right">
               <div id="topmenuposition">
               </div>
            <div id="topmenu">
               <div class="module_s10">
                  <div>

                     <div>
                        <div>
                                 <ul class="menu-nav">
                                 <li class="item60"><a href="index.php"><span><em>Home</em></span></a></li>
                                 <li class="item29"><a href="aboutus.php"><span><em>About Us</em></span></a></li>
                                 <li class="item54"><a href="resources.php"><span><em>Resources</em></span></a></li>
                                 <li class="item55"><a href="press.php"><span><em>Press/Media</em></span></a></li>
                                 <li class="item56"><a href="contact.php"><span><em>Contact Us</em></span></a></li></ul>                                    </div>
                     </div>
                  </div>
               </div>
            </div>
            </div>
         </div>

<div id="header">
   <div class="bg-right">
      <div class="bg-left">
         <div class="space"><img src="images/banner.png" alt="" /></div>
      </div>
   </div>
</div>

<div id="breadcrumb">
   <div class="module_breadcrumb">
      <div>
         <div>
            <div>
                <span class="breadcrumbs pathway">
               </span>
            </div>
         </div>
      </div>
   </div>
</div>

<div id="wrapper">
   <div class="indent">
      <div id="right">
<?php include 'mmenu.php'; ?>

<?php include 'linmenu.php'; ?>
      </div>

      <div id="content">
         <div class="content-tl">
            <div class="content-tr">
               <div class="width">
                  <div id="boxes">
                     <div id="box1">
                        <div class="module">
                           <div class="first">
                              <div class="sec min-height">
                                 <div class="box-indent">
                                    <div class="width">
                                    <h3><span><?php echo $smajor ?>  Workings:</span></h3>

         <table width="95%" border="0" cellspacing="0" cellpadding="1" class="boxtitle">
     
     <?php

   $tbl_name="thelist";//your table name
// How many adjacent pages should be shown on each side?
$adjacents = 3;

/*
      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 WHERE dmajorp = '$smajor' ORDER BY jposted";
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];

/* Setup vars for query. */
$targetpage = "search.php"; //your file name  (the name of this file)
$limit = 4; //how many items to show per page
$page = $_GET['page'];
   if($page)
$start = ($page - 1) * $limit; //first item to display on this page
   else
$start = 0;//if no page var is given, set start to 0

/* Get data. */
$sql = "SELECT * FROM $tbl_name WHERE dmajorp = '$smajor' ORDER BY jposted LIMIT $start, $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 .= "<div class=\"pagination\">";
//previous button
   if ($page > 1)
$pagination.= "<a href=\"$targetpage?page=$prev\">« previous &nbsp;</a>";
   else
$pagination.= "<span class=\"disabled\">« previous &nbsp;</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=\"current\">$counter</span>";
   else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter &nbsp;</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=\"current\">$counter</span>";
   else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter &nbsp;</a>";
   }
$pagination.= "...";
$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1 &nbsp;</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage &nbsp;</a>";
   }
//in middle; hide some front and some back
   elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
   {
$pagination.= "<a href=\"$targetpage?page=1\">1 &nbsp;</a>";
$pagination.= "<a href=\"$targetpage?page=2\">2 &nbsp;</a>";
$pagination.= "...";
   for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
   {
   if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
   else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter &nbsp;</a>";
   }
$pagination.= "...";
$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1 &nbsp;</a>";
$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage &nbsp;</a>";
   }
//close to end; only hide early pages
   else
   {
$pagination.= "<a href=\"$targetpage?page=1\">1 &nbsp;</a>";
$pagination.= "<a href=\"$targetpage?page=2\">2 &nbsp;</a>";
$pagination.= "...";
   for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
   {
   if ($counter == $page)
$pagination.= "<span class=\"current\">$counter</span>";
   else
$pagination.= "<a href=\"$targetpage?page=$counter\">$counter &nbsp;</a>";
   }
   }
   }

//next button
   if ($page < $counter - 1)
$pagination.= "<a href=\"$targetpage?page=$next\">next » &nbsp;</a>";
   else
$pagination.= "<span class=\"disabled\">next »</span>";
$pagination.= "</div>\n";
   }
?>

<?php
      while($row = mysql_fetch_array($result))
   {extract($row);
?>
     
     
     
            <thead>
            <tr><td>
            <a href="showad.php?id=<?php echo $id; ?>"><?php echo $jtitle; ?></a> - $<?php echo $salary; ?>
             </td></tr>
            </thead>
            <tr><td> <?php if (strlen($poverview) > 240) {
    $poverview = substr($poverview, 0, 239) . '...'; } echo $poverview; ?></td></tr>
                <tr><td><b><font color="lightgreen">Experience Desired: </font></b><?php echo $wexperience; ?> &nbsp; &nbsp; <b><font color="lightgreen">Location:</font></b> <?php echo $city; ?>, <?php echo $state; ?> <?php echo $zipcode; ?></td></tr>
                <tr><td><h3>&nbsp;</h3></td></tr>
<?php } ?>
         </table>
<?=$pagination?>

                  </div>
               </div>
            </div>
         </div>
      </div>
   </div>


            </div>

</div>
            </div>
         </div>
      </div>
   </div>
</div>

      </div>
   </div>

<div id="footer">
   <div class="bg">
      <div class="right-bg">
         <div class="left-bg">
            <div class="space">
                  &copy; 2009 

            </div>
         </div>
      </div>
   </div>
</div>
</body>
</html>
__________________
~CJA~
72.29.78.93
hunna03 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old January 4th, 2009, 12:55 AM   #2 (permalink)
Registered User
Comfy Contributor
 
hunna03's Avatar
 
Joined in Mar 2006
Lives in KS
Hosted on SH72
181 posts
Gave thanks: 30
Thanked 0 times
I think I figured it out. I think it has to do with $smajor = $_POST['major']; which is called at the very beginning. When you go to the second page there is nothing posted so it's not calling that.

Perhaps setting this as a session variable?
__________________
~CJA~
72.29.78.93
hunna03 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old January 4th, 2009, 12:59 AM   #3 (permalink)
Surpass Fan
Super #1
 
fury's Avatar
 
Joined in Dec 2005
Lives in MN > USA
Hosted on pass84
1,859 posts
Gave thanks: 64
Thanked 91 times
Send a message via AIM to fury Send a message via Skype™ to fury
Try $_GET['major'] instead of POST. REQUEST will do either one
fury is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old January 4th, 2009, 1:03 AM   #4 (permalink)
Registered User
Comfy Contributor
 
hunna03's Avatar
 
Joined in Mar 2006
Lives in KS
Hosted on SH72
181 posts
Gave thanks: 30
Thanked 0 times
I FIGURED IT OUT!!!!!!!!! YES! It was exactly what I thought it was. 5 hours later. LoL

Code:
if (!$_POST['major'] == NULL)
	{unset($_SESSION['smajor']);
	 $_SESSION['smajor'] = $_POST['major'];
	 $smajor = $_POST['major'];
	}
else $smajor = $_SESSION['smajor']
__________________
~CJA~
72.29.78.93
hunna03 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Old January 4th, 2009, 1:03 AM   #5 (permalink)
Registered User
Comfy Contributor
 
hunna03's Avatar
 
Joined in Mar 2006
Lives in KS
Hosted on SH72
181 posts
Gave thanks: 30
Thanked 0 times
Thanks Fury. :-) I just saw your post.
__________________
~CJA~
72.29.78.93
hunna03 is offline  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On