Hi, I am currently trying to work on a multi search post method on my php script and incorporate with the pagination script too.
At the moment, my single post method works well with the pagination script. However when i tried to add another search query where user is able to search either by the 1st or the 2nd search queries on its own or search both at the same time to get a more define result, the pagination script doesnt seem to work well. Im not sure if i had done anything wrong with it. Could someone help me to have a look.
$val_d = ''; $val_sub='';
if ($_POST['device_search']){ $val_d = $_POST['device_search'];}
else if ($_GET['search']){ $val_d = urldecode($_GET['search']); }
if ($_POST['subconsite']){ $val_sub = $_POST['subconsite'];}
else if ($_GET['search']){ $val_sub = urldecode($_GET['search']); }
if (trim($val_d) != '' && trim($val_sub) != ''){
$sql = "select * from wsdevice";
if (trim($val_d) != ''){
$sql .= " where wsdevice_num like '%" . trim($val_d) . "%' ";
$where = true;
}
if (trim($val_sub) != ''){
if (!$where){
$sql .= " where subcon_site like '%" . trim($val_sub) . "%' ";
}
else {
$sql = str_replace("where ", "where (", $sql);
$sql .= " and subcon_site like '%" . trim($val_sub) . "%') or (wsdevice_num like '%" . trim($val_d) . "%' or subcon_site like '%" . trim($val_sub) . "%')";
}
}
else {
die("NO SEARCH TERMS");
}
$results1 = mysql_query($sql) or die (mysql_error());
$pagenum = $_GET["pagenum"];
echo "<center>";
//This checks to see if there is a page number. If not, it will set it to page 1
if (!(isset($pagenum)))
{
$pagenum = 1;
}
$numrows = mysql_num_rows($results1);
$page_rows = 20; //This is the number of results displayed per page
$last = ceil($numrows/$page_rows); //This tells us the page number of our last page
if ($pagenum < 1) //this makes sure the page number isn't below one, or more than our maximum pages
{
$pagenum = 1;
}
elseif ($pagenum > $last)
{
$pagenum = $last;
}
$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows; //This sets the range to display in our query
$sql = "select * from wsdevice";
if (trim($val_d) != ''){
$sql .= " where wsdevice_num like '%" . trim($val_d) . "%' $max";
$where = true;
}
if (trim($val_sub) != ''){
if (!$where){
$sql .= " where subcon_site like '%" . trim($val_sub) . "%' $max";
}
else {
$sql = str_replace("where ", "where (", $sql);
$sql .= " and subcon_site like '%" . trim($val_sub) . "%' $max) or (wsdevice_num like '%" . trim($val_d) . "%' or subcon_site like '%" . trim($val_sub) . "%' $max)";
}
}
else {
die("NO SEARCH TERMS");
}
$results = mysql_query($sql) or die ("Wrong Device number!".mysql_error());
// This is where i output my results
include "WSsearchtable.php";
echo "<br><br><center>Page $pagenum of $last<br><br>"; // This shows the user what page they are on, and the total number of pages
if($pagenum>1)
{
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1&search=" . urlencode($val_d) . " .+. " . urlencode($val_sub) . "'>First</a> ";
$previous = $pagenum-1;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous&search=" . urlencode($val_d) . " .+. " . urlencode($val_sub) . "'><<</a> ";
}
//This does the same as above, only checking if we are on the last page, and then generating the Next and Last links
if ($pagenum == $last)
{
}
else
{
$next = $pagenum+1;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next&search=" . urlencode($val_d) . " .+. " . urlencode($val_sub) . "'>>></a> ";
echo " ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last&search=" . urlencode($val_d) . " .+. " . urlencode($val_sub) . "'>Last</a> ";
}
}