...

View Full Version : Pagination not going to next page.



bucket
11-03-2009, 08:29 PM
Okay I got it to show no pages when there is no records in the database.

And I also got it to show when there are records in the database to show pages.

But now the pages don't work. When I click to go to page 2 it shows the first 4 records from page 1.



<?php
include("inc/config.php");
if (isset($_POST['del']))
{
for ($count = 0;$count<count($_POST[delchk]);$count++)
{
$delete = $_POST[delchk][$count];
$query = "DELETE FROM accounts WHERE id = '$delete'";
$result = mysql_query($query);
if (!$result)
{
die("Error deleting accounts! Query: $query<br />Error: ".mysql_error());
}
}
}
echo "<table class=\"gridtable\">
<thead>
<tr>
<th align=\"center\" scope=\"col\">Username</th>
<th align=\"center\" scope=\"col\">Password</th>
<th align=\"center\" scope=\"col\">Highscores</th>
<th align=\"center\" scope=\"col\">Date</th>
<th align=\"center\" scope=\"col\">IP Address</th>
<th align=\"center\" scope=\"col\">Status</th>
<th align=\"center\" scope=\"col\">Delete?</th>
</tr>
</thead>
<tbody>";
echo "<form name = 'myform' action='' method='post'>";


$data = mysql_query("SELECT * FROM `accounts`") or die(mysql_error());
$rows = mysql_num_rows($data);
$page_rows = 4;
$max_pages = ceil($rows/$page_rows);

$page = (int) $_GET['pagenum'];
$pagenum = ($page && $page > 0 && $page <= $last) ? $page : 1;
$last = ceil($rows/$page_rows);

$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
$data_p = mysql_query("SELECT * FROM accounts $max") or die(mysql_error());
while($info = mysql_fetch_array( $data_p ))
{
echo "<tr align=\"center\">";
echo "<td class=\"valid\" >" . $info['username'] . "</td>";
echo "<td class=\"valid\" >" . $info['password'] . "</td>";
echo "<td><a target=frame2 href='" ."profile/hiscorepersonal.ws?user1=". $info['username'] ."'>Check Highscores</a></td>";
echo "<td>" . $info['addeddate'] . "</td>";
echo "<td>" . $info['ip'] . "</td>";
echo "<td><img src=\"img/invalid.png\" title=\"Account information: INVALID!\"/><img src=\"img/valid.png\" title=\"Account information: VALID!\"/></td>";
echo '<td><input type="checkbox" id="delchk" name="delchk[]" value="'.$info['id'].'" /></td>';
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "<hr>";
echo "<input type='submit' name = 'del' value='Delete Selected'></form>";
echo "<input type='button' onclick='checkall(document.myform[\"delchk\"]);' value='Select All'>";
echo "<input type='button' onclick='uncheckall(document.myform[\"delchk\"]);' value='Deselect All'>";
echo "<hr>";
if ($pagenum == 1)
{
}
else
{
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'>First</a> ";
echo " | ";
echo " ";
$previous = $pagenum-1;
$current = $pagenum;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'>$previous</a> ";
echo " | ";
}
echo "$pagenum";
if ($pagenum == $last)
{
}
else {
$next = $pagenum+1;
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'> $next</a> ";
echo " ";
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last</a> ";
}
?>


Anyone know the problem or see the problem?

I am also getting no errors

I am getting this notice error on the index.php page:


Notice: Undefined index: pagenum in /home/runehost/public_html/index.php on line 332



And this notice error when I add index?pagenum=2 (It doesnt matter what number it gives the same notice error:

Notice: Undefined variable: last in /home/runehost/public_html/index.php on line 333

Does anyone see the problem?

tomws
11-03-2009, 10:00 PM
You have this:

$pagenum = ($page && $page > 0 && $page <= $last) ? $page : 1;
$last is not defined before you're using it (that's the undefined notice), so it's getting the value zero. page=2 is not less than or equal to zero, so pagenum=1 and your first page results are returned again and again.

bucket
11-03-2009, 10:52 PM
Okay I have fixed that. I am now getting this error:



Notice: Undefined index: pagenum in /home/runehost/public_html/accounts.php on line 330

with this code:


<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

include("inc/config.php");
if (isset($_POST['del']))
{
for ($count = 0;$count<count($_POST[delchk]);$count++)
{
$delete = $_POST[delchk][$count];
$query = "DELETE FROM accounts WHERE id = '$delete'";
$result = mysql_query($query);
if (!$result)
{
die("Error deleting accounts! Query: $query<br />Error: ".mysql_error());
}
}
}
echo "<table class=\"gridtable\">
<thead>
<tr>
<th align=\"center\" scope=\"col\">Username</th>
<th align=\"center\" scope=\"col\">Password</th>
<th align=\"center\" scope=\"col\">Highscores</th>
<th align=\"center\" scope=\"col\">Date</th>
<th align=\"center\" scope=\"col\">IP Address</th>
<th align=\"center\" scope=\"col\">Status</th>
<th align=\"center\" scope=\"col\">Delete?</th>
</tr>
</thead>
<tbody>";
echo "<form name = 'myform' action='' method='post'>";


$data = mysql_query("SELECT * FROM `accounts`") or die(mysql_error());
$rows = mysql_num_rows($data);
$page_rows = 4;
$page = (int) $_GET['pagenum'];
$max_pages = ceil($rows/$page_rows);
$last = ceil($rows/$page_rows);
$pagenum = ($page && $page > 0 && $page <= $last) ? $page : 1;

$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
$data_p = mysql_query("SELECT * FROM accounts $max") or die(mysql_error());
while($info = mysql_fetch_array( $data_p ))
{
echo "<tr align=\"center\">";
echo "<td class=\"valid\" >" . $info['username'] . "</td>";
echo "<td class=\"valid\" >" . $info['password'] . "</td>";
echo "<td><a target=frame2 href='" ."profile/hiscorepersonal.ws?user1=". $info['username'] ."'>Check Highscores</a></td>";
echo "<td>" . $info['addeddate'] . "</td>";
echo "<td>" . $info['ip'] . "</td>";
echo "<td><img src=\"img/invalid.png\" title=\"Account information: INVALID!\"/><img src=\"img/valid.png\" title=\"Account information: VALID!\"/></td>";
echo '<td><input type="checkbox" id="delchk" name="delchk[]" value="'.$info['id'].'" /></td>';
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "<hr>";
echo "<input type='submit' name = 'del' value='Delete Selected'></form>";
echo "<input type='button' onclick='checkall(document.myform[\"delchk\"]);' value='Select All'>";
echo "<input type='button' onclick='uncheckall(document.myform[\"delchk\"]);' value='Deselect All'>";
echo "<hr>";
if ($pagenum == 1)
{
}
else
{
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'>First</a> ";
echo " | ";
echo " ";
$previous = $pagenum-1;
$current = $pagenum;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'>$previous</a> ";
echo " | ";
}
echo "$pagenum";
if ($pagenum == $last)
{
}
else {
$next = $pagenum+1;
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'> $next</a> ";
echo " ";
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last</a> ";
}
?>

what do I do to fix that? also, it shows this
when there are no records in the database:

Picture:
http://i.fhqhosting.com/error2.bmp

See the:

1 | 2 | Last

Its supposed to hide when there are no records.

Can someone help me out?

tomws
11-03-2009, 10:59 PM
It's not a cryptic message. Look at the line in the notice. I suspect it's here:

$page = (int) $_GET['pagenum'];
That means pagenum isn't defined, which is to say that it's not present in the GET string. If you don't want to see the notice, check for isset first.

bucket
11-03-2009, 11:01 PM
How would I do that? Can you please post what I should change or add to the script.

Thank You.

bucket
11-03-2009, 11:15 PM
I fixed that error:


<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

include("inc/config.php");
if (isset($_POST['del']))
{
for ($count = 0;$count<count($_POST[delchk]);$count++)
{
$delete = $_POST[delchk][$count];
$query = "DELETE FROM accounts WHERE id = '$delete'";
$result = mysql_query($query);
if (!$result)
{
die("Error deleting accounts! Query: $query<br />Error: ".mysql_error());
}
}
}
echo "<table class=\"gridtable\">
<thead>
<tr>
<th align=\"center\" scope=\"col\">Username</th>
<th align=\"center\" scope=\"col\">Password</th>
<th align=\"center\" scope=\"col\">Highscores</th>
<th align=\"center\" scope=\"col\">Date</th>
<th align=\"center\" scope=\"col\">IP Address</th>
<th align=\"center\" scope=\"col\">Status</th>
<th align=\"center\" scope=\"col\">Delete?</th>
</tr>
</thead>
<tbody>";
echo "<form name = 'myform' action='' method='post'>";
$data = mysql_query("SELECT * FROM `accounts`") or die(mysql_error());
$rows = mysql_num_rows($data);
$page_rows = 4;
if(!isset($_GET['pagenum']))
{
$page = 1;
}
else
{
$page = (int) $_GET['pagenum'];
}




$max_pages = ceil($rows/$page_rows);
$last = ceil($rows/$page_rows);
$pagenum = ($page && $page > 0 && $page <= $last) ? $page : 1;

$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
$data_p = mysql_query("SELECT * FROM accounts $max") or die(mysql_error());
while($info = mysql_fetch_array( $data_p ))
{
echo "<tr align=\"center\">";
echo "<td class=\"valid\" >" . $info['username'] . "</td>";
echo "<td class=\"valid\" >" . $info['password'] . "</td>";
echo "<td><a target=frame2 href='" ."profile/hiscorepersonal.ws?user1=". $info['username'] ."'>Check Highscores</a></td>";
echo "<td>" . $info['addeddate'] . "</td>";
echo "<td>" . $info['ip'] . "</td>";
echo "<td><img src=\"img/invalid.png\" title=\"Account information: INVALID!\"/><img src=\"img/valid.png\" title=\"Account information: VALID!\"/></td>";
echo '<td><input type="checkbox" id="delchk" name="delchk[]" value="'.$info['id'].'" /></td>';
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "<hr>";
echo "<input type='submit' name = 'del' value='Delete Selected'></form>";
echo "<input type='button' onclick='checkall(document.myform[\"delchk\"]);' value='Select All'>";
echo "<input type='button' onclick='uncheckall(document.myform[\"delchk\"]);' value='Deselect All'>";
echo "<hr>";
if ($pagenum == 1)
{
}
else
{
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'>First</a> ";
echo " | ";
echo " ";
$previous = $pagenum-1;
$current = $pagenum;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'>$previous</a> ";
echo " | ";
}
echo "$pagenum";
if ($pagenum == $last)
{
}
else {
$next = $pagenum+1;
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'> $next</a> ";
echo " ";
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last</a> ";
}
?>


what do I do to fix that? also, it shows this
when there are no records in the database:

Picture:
http://i.fhqhosting.com/error2.bmp

See the:

1 | 2 | Last

Its supposed to hide when there are no records.

Can someone help me out?

bucket
11-03-2009, 11:21 PM
Fixed that too:


<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

include("inc/config.php");
if (isset($_POST['del']))
{
for ($count = 0;$count<count($_POST[delchk]);$count++)
{
$delete = $_POST[delchk][$count];
$query = "DELETE FROM accounts WHERE id = '$delete'";
$result = mysql_query($query);
if (!$result)
{
die("Error deleting accounts! Query: $query<br />Error: ".mysql_error());
}
}
}
echo "<table class=\"gridtable\">
<thead>
<tr>
<th align=\"center\" scope=\"col\">Username</th>
<th align=\"center\" scope=\"col\">Password</th>
<th align=\"center\" scope=\"col\">Highscores</th>
<th align=\"center\" scope=\"col\">Date</th>
<th align=\"center\" scope=\"col\">IP Address</th>
<th align=\"center\" scope=\"col\">Status</th>
<th align=\"center\" scope=\"col\">Delete?</th>
</tr>
</thead>
<tbody>";
echo "<form name = 'myform' action='' method='post'>";
$data = mysql_query("SELECT * FROM `accounts`") or die(mysql_error());
$rows = mysql_num_rows($data);
$page_rows = 4;
if(!isset($_GET['pagenum']))
{
$page = 1;
}
else
{
$page = (int) $_GET['pagenum'];
}




$max_pages = ceil($rows/$page_rows);
$last = ceil($rows/$page_rows);
$pagenum = ($page && $page > 0 && $page <= $last) ? $page : 1;

$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
$data_p = mysql_query("SELECT * FROM accounts $max") or die(mysql_error());
while($info = mysql_fetch_array( $data_p ))
{
echo "<tr align=\"center\">";
echo "<td class=\"valid\" >" . $info['username'] . "</td>";
echo "<td class=\"valid\" >" . $info['password'] . "</td>";
echo "<td><a target=frame2 href='" ."profile/hiscorepersonal.ws?user1=". $info['username'] ."'>Check Highscores</a></td>";
echo "<td>" . $info['addeddate'] . "</td>";
echo "<td>" . $info['ip'] . "</td>";
echo "<td><img src=\"img/invalid.png\" title=\"Account information: INVALID!\"/><img src=\"img/valid.png\" title=\"Account information: VALID!\"/></td>";
echo '<td><input type="checkbox" id="delchk" name="delchk[]" value="'.$info['id'].'" /></td>';
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "<hr>";
echo "<input type='submit' name = 'del' value='Delete Selected'></form>";
echo "<input type='button' onclick='checkall(document.myform[\"delchk\"]);' value='Select All'>";
echo "<input type='button' onclick='uncheckall(document.myform[\"delchk\"]);' value='Deselect All'>";
echo "<hr>";
if ($pagenum == 1)
{
}
else
{
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'>First</a> ";
echo " | ";
echo " ";
$previous = $pagenum-1;
$current = $pagenum;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'>$previous</a> ";
echo " | ";
}
echo "$pagenum";
if ($pagenum == $last || $last == 0)
{
}
else {
$next = $pagenum+1;
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'> $next</a> ";
echo " ";
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last</a> ";
}
?>

Now all I need is instead of showing a blank table for it to just say

'No Logged Accounts'

bucket
11-03-2009, 11:51 PM
I got it:



<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

include("inc/config.php");
if (isset($_POST['del']))
{
for ($count = 0;$count<count($_POST[delchk]);$count++)
{
$delete = $_POST[delchk][$count];
$query = "DELETE FROM accounts WHERE id = '$delete'";
$result = mysql_query($query);
if (!$result)
{
die("Error deleting accounts! Query: $query<br />Error: ".mysql_error());
}
}
}
$result = mysql_query("SELECT * FROM accounts");
if(mysql_num_rows($result) > 0)
{

echo "<table class=\"gridtable\">
<thead>
<tr>
<th align=\"center\" scope=\"col\">Username</th>
<th align=\"center\" scope=\"col\">Password</th>
<th align=\"center\" scope=\"col\">Highscores</th>
<th align=\"center\" scope=\"col\">Date</th>
<th align=\"center\" scope=\"col\">IP Address</th>
<th align=\"center\" scope=\"col\">Status</th>
<th align=\"center\" scope=\"col\">Delete?</th>
</tr>
</thead>
<tbody>";
echo "<form name = 'myform' action='' method='post'>";
$data = mysql_query("SELECT * FROM `accounts`") or die(mysql_error());
$rows = mysql_num_rows($data);
$page_rows = 4;
if(!isset($_GET['pagenum']))
{
$page = 1;
}
else
{
$page = (int) $_GET['pagenum'];
}


$max_pages = ceil($rows/$page_rows);
$last = ceil($rows/$page_rows);
$pagenum = ($page && $page > 0 && $page <= $last) ? $page : 1;

$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
$data_p = mysql_query("SELECT * FROM accounts $max") or die(mysql_error());
while($info = mysql_fetch_array( $data_p ))
{
echo "<tr align=\"center\">";
echo "<td class=\"valid\" >" . $info['username'] . "</td>";
echo "<td class=\"valid\" >" . $info['password'] . "</td>";
echo "<td><a target=frame2 href='" ."profile/hiscorepersonal.ws?user1=". $info['username'] ."'>Check Highscores</a></td>";
echo "<td>" . $info['addeddate'] . "</td>";
echo "<td>" . $info['ip'] . "</td>";
echo "<td><img src=\"img/invalid.png\" title=\"Account information: INVALID!\"/><img src=\"img/valid.png\" title=\"Account information: VALID!\"/></td>";
echo '<td><input type="checkbox" id="delchk" name="delchk[]" value="'.$info['id'].'" /></td>';
echo "</tr>";
}
echo "</tbody>";
echo "</table>";
echo "<hr>";
echo "<input type='submit' name = 'del' value='Delete Selected'></form>";
echo "<input type='button' onclick='checkall(document.myform[\"delchk\"]);' value='Select All'>";
echo "<input type='button' onclick='uncheckall(document.myform[\"delchk\"]);' value='Deselect All'>";
echo "<hr>";



if ($pagenum == 1)
{
}
else
{
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1'>First</a> ";
echo " | ";
echo " ";
$previous = $pagenum-1;
$current = $pagenum;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'>$previous</a> ";
echo " | ";
}
echo "$pagenum";
if ($pagenum == $last || $last == 0)
{
}
else
{
$next = $pagenum+1;
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next'> $next</a> ";
echo " ";
echo " | ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last</a> ";
}
}
else
{
// No rows were found ...
echo '<center>No logged accounts.</center><hr>';
}
?>

I had to add this in the beggining

$result = mysql_query("SELECT * FROM accounts");
if(mysql_num_rows($result) > 0)
{


and this at the end:

}
else
{
// No rows were found ...
echo '<center>No logged accounts.</center><hr>';
}



EZ Archive Ads Plugin for vBulletin Copyright 2006 Computer Help Forum