Jump to content

Pagination with Session ID working only first link


scorpious

Recommended Posts

Hi All

 

I have tryied the Basic Pagination which works great, however, when i have it set to use a $_SESSION the first link works ok, but, when I click on the Number 2 Link or above it shows nothing, list below is the code:

 

<?php
session_start();
$_SESSION['$Session'] = $_POST['name'];
$table_name = $_SESSION['$Session']; 
?>
<html>
<head>
<title>Numbers</title>
<style>

table { font-size:1em; }
table tr th{font: 80% Verdana, Geneva, Arial, Helvetica, sans-serif;
    background-color:#ddb;    
    padding:0.2em 0.6em 0.2em 0.6em;
}
table tr td{font: 80% Verdana, Geneva, Arial, Helvetica, sans-serif;
    background-color:#eec;
    margin:0.3em;
    padding:0.3em;
}
a { 
         color: #d6dadb;
         text-decoration: none;
         }

</style>
</head>
<body>
<?php
// Print the Sessionname to screen to prove that session name is brought over
echo "You Entered " .$table_name. " .<br><br>";
// database connection info
// Include the Database information
include('user.php');
$conn = mysql_connect("$host","$user","$password")
or die(mysql_error());
$db = mysql_select_db("$dbname",$conn)
or die(mysql_error());

// find out how many rows are in the table
$sql = "SELECT COUNT(*) FROM $table_name";
// below is Line 40 for the error
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);
$r = mysql_fetch_row($result);
$numrows = $r[0];

// number of rows to show per page
$rowsperpage = 10;
// find out total pages
$totalpages = ceil($numrows / $rowsperpage);

// get the current page or set a default
if (isset($_GET['currentpage']) && is_numeric($_GET['currentpage'])) {
   // cast var as int
   $currentpage = (int) $_GET['currentpage'];
} else {
   // default page num
   $currentpage = 1;
} // end if

// if current page is greater than total pages...
if ($currentpage > $totalpages) {
   // set current page to last page
   $currentpage = $totalpages;
} // end if
// if current page is less than first page...
if ($currentpage < 1) {
   // set current page to first page
   $currentpage = 1;
} // end if

// the offset of the list, based on current page 
$offset = ($currentpage - 1) * $rowsperpage;

// get the info from the db 
$sql = "SELECT id, number FROM $table_name LIMIT $offset, $rowsperpage";
$result = mysql_query($sql, $conn) or trigger_error("SQL", E_USER_ERROR);

// while there are rows to be fetched...
while ($list = mysql_fetch_assoc($result)) {
   // echo data
   echo $list['id'] . " : " . $list['number'] . "<br />";
} // end while

/******  build the pagination links ******/
// range of num links to show
$range = 3;

// if not on page 1, don't show back links
if ($currentpage > 1) {
   // show << link to go back to page 1
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=1'><<</a> ";
   // get previous page num
   $prevpage = $currentpage - 1;
   // show < link to go back to 1 page
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$prevpage'><</a> ";
} // end if 

// loop to show links to range of pages around current page
for ($x = ($currentpage - $range); $x < (($currentpage + $range) + 1); $x++) {
   // if it's a valid page number...
   if (($x > 0) && ($x <= $totalpages)) {
      // if we're on current page...
      if ($x == $currentpage) {
         // 'highlight' it but don't make a link
         echo " [<b>$x</b>] ";
      // if not current page...
      } else {
         // make it a link
 echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$x'>$x</a> ";
      } // end else
   } // end if 
} // end for

// if not on last page, show forward and last page links	
if ($currentpage != $totalpages) {
   // get next page
   $nextpage = $currentpage + 1;
    // echo forward link for next page 
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$nextpage'>></a> ";
   // echo forward link for lastpage
   echo " <a href='{$_SERVER['PHP_SELF']}?currentpage=$totalpages'>>></a> ";
} // end if
/****** end build pagination links ******/
?>
</body>
</HTML>

 

My input form is like this

<?php 
session_start();
$_SESSION['Session'] = $_POST['name'];
?>
<html>
<body><form action="pagelist.php" method="post">
Name: <input type="text" name="name" />
<input type="submit" />
</form></body>
</html>

 

When run it show the first 1 to 10 within the database no problem. the error message within the error file is:

PHP Fatal error:  SQL in H:\Website Address\test\pagelist.php on line 40

I am running this on a test server at home, If I run the Pagination script without any changed it works great.

 

How can I get the script to work with Session ID, or have I done it total wrong  :-\

I have been searching for a answer all weekend, I started with a good head of hair, now I look like Homer Simpson  :D

 

I have used the script to with other tables and get the same result.

 

Cheers for your advise and help

 

(bold) Scorp

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.