Jump to content

Loosing a POST Value in a search page


ballouta

Recommended Posts

Hello

 

I have this code that searches multiple tables. running this query in the phpmyadmin page works fine and gives correct results.

I echo-ed the $kw and noticed that it is lost (empty) when I click on Next (when moving to the second page or so..)

How do I save the $kw for all search results?

 

Thank you so much

 

$kw = trim($_POST['keyword']);
$kw = mysql_real_escape_string($kw);	

//Nomber of rows to display per page
$page_rows=20;

//This checks to see if there is a page number. If not, it will set it to page 1 
 if (!(isset($pagenum)))
 {
 $pagenum = 1;
 }

echo "$kw of $pagenum";

//Count we count the number of results
$data = mysql_query("
	SELECT `id`,`title`, `body`, 'condoms_en' as REF FROM `condoms_en` where `title` like '%$kw%' OR `body` like '%$kw%'
UNION
	SELECT `id`,`title`, `body`, 'discr_en' as REF FROM `discr_en` where `title` like '%$kw%' OR `body` like '%$kw%'
UNION
	SELECT `id`,`title`, `body`, 'diseases_en' as REF FROM `diseases_en` where `title` like '%$kw%' OR `body` like '%$kw%'
UNION
	SELECT `id`,`title`, `body`, 'express_en' as REF FROM `express_en` where `title` like '%$kw%' OR `body` like '%$kw%' ") or die(mysql_error());
$rows = mysql_num_rows($data);

if ($rows ==1 || $rows > 1)
	{
//echo "Number of rows $rows <br/>";

//This tells us the page number of our last page 
$last = ceil($rows/$page_rows);

//this makes sure the page number isn't below one, or more than our maximum pages
if ($pagenum < 1) 
 { 
 $pagenum = 1; 
 } 
 elseif ($pagenum > $last) 
 { 
 $pagenum = $last; 
 } 

//echo "<h4>".$pagenum."-20 of ".$total."results</h4> <br />";
// This shows the user what page they are on, and the total number of pages
 echo " ===> Page $pagenum of $last <br/><br/>";

//This sets the range to display in our query 
$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;

//This is your query again, the same one... the only difference is we add $max into it
$data_p = mysql_query("
	SELECT `id`,`title`, `body`, 'condoms_en' as REF FROM `condoms_en` where `title` like '%$kw%' OR `body` like '%$kw%'
UNION
	SELECT `id`,`title`, `body`, 'discr_en' as REF FROM `discr_en` where `title` like '%$kw%' OR `body` like '%$kw%'
UNION
	SELECT `id`,`title`, `body`, 'diseases_en' as REF FROM `diseases_en` where `title` like '%$kw%' OR `body` like '%$kw%'
UNION
	SELECT `id`,`title`, `body`, 'express_en' as REF FROM `express_en` where `title` like '%$kw%' OR `body` like '%$kw%' $max") or die(mysql_error());

//This is where you display your query results
 while($info = mysql_fetch_array( $data_p ))
 {

 print $info['title']; //print $info['REF'];
 echo "<br>";
 }
 echo "<p><br/>";

 // First we check if we are on page one. If we are then we don't need a link to the previous page 
 //or the first page so we do nothing. If we aren't then we generate links to the first page, and to the previous page.

 if ($pagenum == 1) 
 {
 } 
 else 
 {
 echo " <a style=\"color: #FF0000\" href='{$_SERVER['PHP_SELF']}?pagenum=1'> <<-First</a> ";
 echo " ";
 $previous = $pagenum-1;
 echo " <a style=\"color: #FF0000\" href='{$_SERVER['PHP_SELF']}?pagenum=$previous'> <-Previous</a> ";
 }
 //just a spacer
 echo " ---- ";

 //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 style=\"color: #FF0000\" href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next -></a> ";
 echo " ";
 echo " <a style=\"color: #FF0000\" href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last ->></a> ";
 } 


} //results was found
else
{
echo "No results FOUND";
}

Link to comment
Share on other sites

Hi

 

I got an idea from someone, using SESSIONS is the best way to do this.

 

can you help please me in the syntax now

how to replace '%$kw%' with the session variable e.g ($_SESSION['srch'])

 

SELECT `id`,`title`, `body`, 'discr_en' as REF FROM `discr_en` where `title` like '%$kw%' OR `body` like '%$kw%'

Thank you

Link to comment
Share on other sites

Make sure you have session_start() at the top of your page, then just swap...

 

$kw = trim($_POST['keyword']);
$kw = mysql_real_escape_string($kw);

 

For....

 

if (isset($_POST['keyword'])) {
  $kw = mysql_real_escape_string(trim($_POST['keyword']));
} else if (isset($_SESSION['srch'])) {
  $kw = $_SESSION['srch']
  // rest of your code goes in here.
}

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.