satmanuk
asked on
problem with PHP limit page and header("Location:
Hi all,
I am having a problem with a php page im working on.
The page is a results page from a keyword search page.
On this page i limit the records to 10 and have page numbers so the user can click on the page they want records for.
I also have a script at the top of the page that directs the user back to the search form and echos a message if no fields are filled in and the search is submitted.
The problem i have is if i click one of the page numbers to view records on that recordset page, the page doesnt load, instead the header code at the top of my page is executed. and i get redirected to the search form as if i just entered a blank search?
I assume this is due to the way i have my code laid out but i am unsure how to fix the issue while retaining my header script at the top of the page.
Here is my entire page code so you can see what i am reffering to.
<?php require_once('Connections/ EE_con.php '); ?>
<?php
$keyword_street = "";
$keyword_village = "";
$case = 0;
if(!isset($_REQUEST["keywo rd_street" ]) || $_REQUEST["keyword_street" ]=='')
{
$keyword_street = "<font color=\"red\">Please enter this field!</font>";
}
if(!isset($_REQUEST["keywo rd_village "]) || $_REQUEST["keyword_village "]=='')
{
$keyword_village = "<font color=\"red\">Please enter this field!</font>";
}
if($keyword_village!="" && $keyword_street!="")
{
header("Location: keyword2.php?street=$keywo rd_street& village=$k eyword_vil lage");
// Keyword2.php is the name of the page where my search form is.
exit();
}
?>
<?
$maxRows_Recordset1 = 10;
$pageNum_Recordset1 = 0;
if (isset($_GET['pageNum_Reco rdset1'])) {
$pageNum_Recordset1 = $_GET['pageNum_Recordset1' ];
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;
mysql_select_db($database_ EE_con, $EE_con);
$keywordstreet = $_REQUEST['keyword_street' ];
$keywordvillage = $_REQUEST['keyword_village '];
$K_street = $_POST['keyword_street'];
$K_village = $_POST['keyword_village'];
if (strlen($_POST['keyword_st reet']) > 0) {
$test = "one";
}
if (strlen($_POST['keyword_vi llage']) > 0) {
$test2 = "two";
}
if ($test = "one" && $test2 = "two") {
$where_clause = "WHERE property_address1 LIKE '%$keywordstreet%' AND property_towncity LIKE '%$keywordvillage%'";
}
$query_Recordset1 = "SELECT * FROM properties $where_clause ORDER BY price ASC";
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_R ecordset1, $EE_con) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Records et1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1 );
if (isset($_GET['totalRows_Re cordset1'] )) {
$totalRows_Recordset1 = $_GET['totalRows_Recordset 1'];
} else {
$all_Recordset1 = mysql_query($query_Records et1);
$totalRows_Recordset1 = mysql_num_rows($all_Record set1);
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1 /$maxRows_ Recordset1 )-1;
if ($totalRows_Recordset1 == 0){
echo "There are no results matching your search criteria <BR> Keyword 1:$K_street <BR> Keyword 2:$K_village <BR><BR> Click Here to search again!";
}
echo "whereclause:$where_clause <br>";
echo "keyword Street: $keywordstreet<br>";
echo "keyword Village: $keywordvillage<br>";
echo "test: $test<br>";
echo "test2: $test2<br>";
do {
?>
<p><?php echo $row_Recordset1['property_ numname']; ?></p>
<p><?php echo $row_Recordset1['property_ address1'] ; ?></p>
<p><?php echo $row_Recordset1['property_ address2'] ; ?></p>
<p><?php echo $row_Recordset1['property_ towncity'] ; ?></p>
<p><?php echo $row_Recordset1['prop_post code']; ?></p>
<p><?php echo $row_Recordset1['pic1']; ?></p>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Records et1)); ?>
Page <?php for ($i = 0; $i <= $totalPages_Recordset1; $i++) {
$href = sprintf('%s?pageNum_Record set1=%d%s' , $currentPage, $i, $queryString_Recordset1);
$label = $i + 1;
echo '<a href="'.$href.'">'.$label. '</a>';
}
?>
<?php
mysql_free_result($Records et1);
?>
I am having a problem with a php page im working on.
The page is a results page from a keyword search page.
On this page i limit the records to 10 and have page numbers so the user can click on the page they want records for.
I also have a script at the top of the page that directs the user back to the search form and echos a message if no fields are filled in and the search is submitted.
The problem i have is if i click one of the page numbers to view records on that recordset page, the page doesnt load, instead the header code at the top of my page is executed. and i get redirected to the search form as if i just entered a blank search?
I assume this is due to the way i have my code laid out but i am unsure how to fix the issue while retaining my header script at the top of the page.
Here is my entire page code so you can see what i am reffering to.
<?php require_once('Connections/
<?php
$keyword_street = "";
$keyword_village = "";
$case = 0;
if(!isset($_REQUEST["keywo
{
$keyword_street = "<font color=\"red\">Please enter this field!</font>";
}
if(!isset($_REQUEST["keywo
{
$keyword_village = "<font color=\"red\">Please enter this field!</font>";
}
if($keyword_village!="" && $keyword_street!="")
{
header("Location: keyword2.php?street=$keywo
// Keyword2.php is the name of the page where my search form is.
exit();
}
?>
<?
$maxRows_Recordset1 = 10;
$pageNum_Recordset1 = 0;
if (isset($_GET['pageNum_Reco
$pageNum_Recordset1 = $_GET['pageNum_Recordset1'
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;
mysql_select_db($database_
$keywordstreet = $_REQUEST['keyword_street'
$keywordvillage = $_REQUEST['keyword_village
$K_street = $_POST['keyword_street'];
$K_village = $_POST['keyword_village'];
if (strlen($_POST['keyword_st
$test = "one";
}
if (strlen($_POST['keyword_vi
$test2 = "two";
}
if ($test = "one" && $test2 = "two") {
$where_clause = "WHERE property_address1 LIKE '%$keywordstreet%' AND property_towncity LIKE '%$keywordvillage%'";
}
$query_Recordset1 = "SELECT * FROM properties $where_clause ORDER BY price ASC";
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_R
$row_Recordset1 = mysql_fetch_assoc($Records
$totalRows_Recordset1 = mysql_num_rows($Recordset1
if (isset($_GET['totalRows_Re
$totalRows_Recordset1 = $_GET['totalRows_Recordset
} else {
$all_Recordset1 = mysql_query($query_Records
$totalRows_Recordset1 = mysql_num_rows($all_Record
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1
if ($totalRows_Recordset1 == 0){
echo "There are no results matching your search criteria <BR> Keyword 1:$K_street <BR> Keyword 2:$K_village <BR><BR> Click Here to search again!";
}
echo "whereclause:$where_clause
echo "keyword Street: $keywordstreet<br>";
echo "keyword Village: $keywordvillage<br>";
echo "test: $test<br>";
echo "test2: $test2<br>";
do {
?>
<p><?php echo $row_Recordset1['property_
<p><?php echo $row_Recordset1['property_
<p><?php echo $row_Recordset1['property_
<p><?php echo $row_Recordset1['property_
<p><?php echo $row_Recordset1['prop_post
<p><?php echo $row_Recordset1['pic1']; ?></p>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Records
Page <?php for ($i = 0; $i <= $totalPages_Recordset1; $i++) {
$href = sprintf('%s?pageNum_Record
$label = $i + 1;
echo '<a href="'.$href.'">'.$label.
}
?>
<?php
mysql_free_result($Records
?>
ASKER
I get that but what i don't get is why they don't have a value. If they didn't then i wouldn't be seeing my results in the first place?
> why they don't have a value
you are wrong! you are checking the variables
$keyword_village && $keyword_street
and you are always setting a value for them. By the time the script "hits" the if, neither of those variables is empty!
you are wrong! you are checking the variables
$keyword_village && $keyword_street
and you are always setting a value for them. By the time the script "hits" the if, neither of those variables is empty!
Try this:
if((!isset($_REQUEST["keyw ord_street "]) || $_REQUEST["keyword_street" ]=='') && (!isset($_REQUEST["keyword _village"] ) || $_REQUEST["keyword_village "]=='') )
instead of:
if($keyword_village!="" && $keyword_street!="")
if((!isset($_REQUEST["keyw
instead of:
if($keyword_village!="" && $keyword_street!="")
ASKER
I replaced the line with your code but nothing changes.
try this
if(!isset($_GET['pageNum_R ecordset1' ]) {
if(!isset($_REQUEST["keywo rd_street" ]) || $_REQUEST["keyword_street" ]=='')
{
$keyword_street = "<font color=\"red\">Please enter this field!</font>";
}
if(!isset($_REQUEST["keywo rd_village "]) || $_REQUEST["keyword_village "]=='')
{
$keyword_village = "<font color=\"red\">Please enter this field!</font>";
}
if($keyword_village!="" && $keyword_street!="")
{
header("Location: keyword2.php?street=$keywo rd_street& village=$k eyword_vil lage");
// Keyword2.php is the name of the page where my search form is.
exit();
}
}
if(!isset($_GET['pageNum_R
if(!isset($_REQUEST["keywo
{
$keyword_street = "<font color=\"red\">Please enter this field!</font>";
}
if(!isset($_REQUEST["keywo
{
$keyword_village = "<font color=\"red\">Please enter this field!</font>";
}
if($keyword_village!="" && $keyword_street!="")
{
header("Location: keyword2.php?street=$keywo
// Keyword2.php is the name of the page where my search form is.
exit();
}
}
ASKER
I get this when i run a search
Parse error: syntax error, unexpected '{' in /home/melvin/public_html/e stateagent s/keywordr esults.php on line 7
Parse error: syntax error, unexpected '{' in /home/melvin/public_html/e
forgot a ) .. sorry
if(!isset($_GET['pageNum_R ecordset1' ])) {
if(!isset($_REQUEST["keywo rd_street" ]) || $_REQUEST["keyword_street" ]=='')
{
$keyword_street = "<font color=\"red\">Please enter this field!</font>";
}
if(!isset($_REQUEST["keywo rd_village "]) || $_REQUEST["keyword_village "]=='')
{
$keyword_village = "<font color=\"red\">Please enter this field!</font>";
}
if($keyword_village!="" && $keyword_street!="")
{
header("Location: keyword2.php?street=$keywo rd_street& village=$k eyword_vil lage");
// Keyword2.php is the name of the page where my search form is.
exit();
}
}
if(!isset($_GET['pageNum_R
if(!isset($_REQUEST["keywo
{
$keyword_street = "<font color=\"red\">Please enter this field!</font>";
}
if(!isset($_REQUEST["keywo
{
$keyword_village = "<font color=\"red\">Please enter this field!</font>";
}
if($keyword_village!="" && $keyword_street!="")
{
header("Location: keyword2.php?street=$keywo
// Keyword2.php is the name of the page where my search form is.
exit();
}
}
ASKER
Ok cool cheers, The search works again and when i click the numbers it doesnt revert to the search page. but now when i click the page numbers the results screw up and show all in the table rather than the results based on my search? Example the results were 2 pages of records. I click page 2 and then the results display all records. So the search results are lost.
any ideas?
any ideas?
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
just wish i knew how you did that! it works!
Many thanks
i want to do something similar to the header script for when a user searches something thats not found.
at the moment i got this line:
if ($totalRows_Recordset1 == 0){
echo "There are no results matching your search criteria <BR> Keyword 1:$K_street <BR> Keyword 2:$K_village <BR><BR> Click Here to search again!";
}
Do you know if its possible to treat this the same as when a user trys to submit no data?
Many thanks
i want to do something similar to the header script for when a user searches something thats not found.
at the moment i got this line:
if ($totalRows_Recordset1 == 0){
echo "There are no results matching your search criteria <BR> Keyword 1:$K_street <BR> Keyword 2:$K_village <BR><BR> Click Here to search again!";
}
Do you know if its possible to treat this the same as when a user trys to submit no data?
$queryString_Recordset1 = "&keyword_street=".$_REQUE ST['keywor d_street'] ."&keyword _village=" .$_REQUEST ['keyword_ village'];
That just passes the search criteria to the next page.
>> Do you know if its possible to treat this the same as when a user trys to submit no data?
You mean redirect the user back to the search page ?
That just passes the search criteria to the next page.
>> Do you know if its possible to treat this the same as when a user trys to submit no data?
You mean redirect the user back to the search page ?
ASKER
yes in essence what i want is the user to get a message on the searchform.php page saying no results found. like i have for when the form is submitted with no data.
Or instead of my code :
echo "There are no results matching your search criteria <BR> Keyword 1:$K_street <BR> Keyword 2:$K_village <BR><BR> Click Here to search again!";
}
have the user directed to a new page where i can state no results were found.
Or instead of my code :
echo "There are no results matching your search criteria <BR> Keyword 1:$K_street <BR> Keyword 2:$K_village <BR><BR> Click Here to search again!";
}
have the user directed to a new page where i can state no results were found.
Congratulations!!!
https://www.experts-exchange.com/twoMillionSolutions.jsp
https://www.experts-exchange.com/twoMillionSolutions.jsp
Well Done !!!
https://www.experts-exchange.com/twoMillionSolutions.jsp
https://www.experts-exchange.com/twoMillionSolutions.jsp
Congratulations from ellandrd!!!
Great to see a relatively new member with obviously valuable skills provide the 2 Millionth solution! Well done!
Well Done, and 2 Milions Congratulations :)
Regards,
Naser
Regards,
Naser
Well done steelseth12 !!
ASKER
Thanks everyone! I was shocked to find that my question earnt me a laptop! i havent a clue what type it is? anyone know?
THANKS EXPERTS EXCHANGE!
THANKS EXPERTS EXCHANGE!
>>i havent a clue what type it is?
from the EE newsletter
"Each laptop is outfitted with an Intel Core 2 Duo 2.0GHz processor, a 17-inch wide screen display, 2GB of memory, and dual 120GB hard drives. Our superb designers mocked up some flashy desktop wallpapers for the winners new laptops....."
congrats satmanuk!!
kiranvj
from the EE newsletter
"Each laptop is outfitted with an Intel Core 2 Duo 2.0GHz processor, a 17-inch wide screen display, 2GB of memory, and dual 120GB hard drives. Our superb designers mocked up some flashy desktop wallpapers for the winners new laptops....."
congrats satmanuk!!
kiranvj
These winners will also receive limited edition Experts Exchange 2,000,000 solutions shirts, and recognition in their member profiles as being part of EE history.
Cheers!
Cheers!
ASKER
COOL! thats a beast of a laptop!
:O) :O)
:O) :O)
I want to be this kind of winner :((
Great!
Welldone & congratz
Great!
Welldone & congratz
gud one
if(!isset($_REQUEST["keywo
{
$keyword_street = "<font color=\"red\">Please enter this field!</font>";
}
if(!isset($_REQUEST["keywo
{
$keyword_village = "<font color=\"red\">Please enter this field!</font>";
}
make sure that $keyword_village and $keyword_street always contain some value. Thus,
if($keyword_village!="" && $keyword_street!="")
will always be true an the header function will execute