I'm trying to get this PHP script to paginate the data pulled from the mysql database.
It is going wrong somewhere in the second for
loop. Instead of pulling the data through it is just returning blank or empty fields.
I need it to display the title, description and content fields from the database, along with the ID.
require_once("../controls/config.php");
$connection = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($connection->connect_errno) {
printf("Connect failed: %s
", $connection->connect_error);
exit();
}
// number of results to show per page
$per_page = 3;
// figure out the total pages in the database
$result = $connection->query("SELECT * FROM pages");
$total_results = $result->num_rows;
$total_pages = ceil($total_results / $per_page);
// check if the 'page' variable is set in the URL (ex: view-paginated.php?page=1)
if (isset($_GET['page']) && is_numeric($_GET['page']))
{
$show_page = $_GET['page'];
// make sure the $show_page value is valid
if ($show_page > 0 && $show_page <= $total_pages)
{
$start = ($show_page -1) * $per_page;
$end = $start + $per_page;
}
else
{
// error - show first set of results
$start = 0;
$end = $per_page;
}
}
else
{
// if page isn't set, show first set of results
$start = 0;
$end = $per_page;
}
for ($i = 1; $i <= $total_pages; $i++)
{
echo "<a href='?page=$i'>$i</a><br>";
}
// loop through results of database query, displaying them in the table
for ($i = $start; $i < $end; $i++)
{
// make sure that PHP doesn't try to show results that don't exist
if ($i == $total_results) { break; }
echo $i["id"].' ';
echo $i["title"].' ';
echo $i["description"].' ';
echo $i["content"].' ';
echo '<a href="edit.php?id='.$i["id"].'">Edit</a> ';
echo '<a href="delete.php?id='.$i["id"].'">Delete</a><br>';
}
?>
<p><a href="new.php">Add a new record</a></p>
Can anyone point me in the right direction?