Ik heb aan paging (navigatie) script gekoppeld aan een database. Daaraan toegevoegd heb een search request voor op trefwoord zoeken en een letter request voor op alfabet sorteren. In het script heb ik een if else constructie gemaakt zodat de input bij het juiste query terecht komt, maar dit gaat fout bij de letter input. De eerste gaat de request wel door de goed lus, maar de te 2de keer gaat hij door de lus voor de search query. Hoe los ik dit op?
<?php
include "connect.php"; //verbinding maken
// how many rows to show per page
$rowsPerPage = 30;
// by default we show first page
$pageNum = 1;
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
if(isset($_REQUEST['search'])) // Zoeken op trefwoord
{
$search=$_REQUEST['search'];
$query = "SELECT COUNT(1) AS numrows FROM cat17 WHERE Familienaam LIKE '%$search%' || Auteur LIKE '%$search%' || Titel LIKE '%$search%'";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$query = "SELECT * FROM cat17 WHERE Familienaam LIKE '%$search%' || Auteur LIKE '%$search%' || Titel LIKE '%$search%' LIMIT $offset, $rowsPerPage";
}
else if(isset($_REQUEST['letter'])) // Zoeken op letter
{
$letter = $_REQUEST['letter'];
$query = "SELECT COUNT(1) AS numrows FROM cat17 WHERE Familienaam LIKE '$letter%'";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$query = "SELECT * FROM cat17 WHERE Familienaam LIKE '$letter%' LIMIT $offset, $rowsPerPage";
}
else{ // de complete database
$query = "SELECT COUNT(*) AS numrows FROM cat17";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
$query = "SELECT * FROM cat17"." LIMIT $offset, $rowsPerPage";
}
$sql = mysql_query($query) or die ( mysql_error( ) );
echo"<table width=\"100%\" border=0>";
while($row = mysql_fetch_array($sql)){
echo"<tr><td width=\"130\" valign=\"top\"><b>Familienaam:</b></td><td valign=\"top\">".$row['Familienaam']."</td></tr>";
echo"<tr><td valign=\"top\"><b>Auteur:</b></td><td valign=\"top\">".$row['Auteur']."</td></tr>";
echo"<tr><td valign=\"top\"><b>Titel:</b></td><td valign=\"top\">".$row['Titel']."</td></tr>";
echo"<tr><td valign=\"top\"><b>Nummer:</b></td><td valign=\"top\">".$row['Nummer']."</td></tr>";
echo"<tr><td valign=\"top\"><b>Prijs:</b></td><td valign=\"top\">".$row['Prijs']."</td></tr>";
echo"<tr><td colspan=\"2\"><hr></td></tr>";
}
echo"</table><br>";
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
$self = $_SERVER['PHP_SELF'];
// creating 'previous' and 'next' link
// plus 'first page' and 'last page' link
// print 'previous' link only if we're not
// on page one
if ($pageNum > 1)
{
$page = $pageNum - 1;
$search = isset($_REQUEST['search']) ? $_REQUEST['search'] : null;
$letter = isset($_REQUEST['letter']) ? $_REQUEST['letter'] : null;
$prev = " <a href=\"$self?page=$page&search=$search&letter=$letter\">[Prev]</a> ";
$first = " <a href=\"$self?page=1&search=$search&letter=$letter\">[First Page]</a> ";
}
else
{
$prev = ' [Prev] '; // we're on page one, don't enable 'previous' link
$first = ' [First Page] '; // nor 'first page' link
}
// print 'next' link only if we're not
// on the last page
if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$search = isset($_REQUEST['search']) ? $_REQUEST['search'] : null;
$letter = isset($_REQUEST['letter']) ? $_REQUEST['letter'] : null;
$next = " <a href=\"$self?page=$page&search=$search&letter=$letter\">[Next]</a> ";
$last = " <a href=\"$self?page=$maxPage&search=$search&letter=$letter\">[Last Page]</a> ";
}
else
{
$next = ' [Next] '; // we're on the last page, don't enable 'next' link
$last = ' [Last Page] '; // nor 'last page' link
}
// print the page navigation link
echo "<table width=\"100%\"><tr><td>" . $first . $prev . "</td><td align=\"center\"> Showing page <strong>$pageNum</strong> of <strong>$maxPage</strong> pages </td><td align=\"right\">" . $next . $last . "</td></tr></table>";
?>
1.102 views