i have a very script heavy page. (its a search and display page) has a lot of "if" statements and "case" statements. these all come before the html of the page. it seems to display a blank page for about 40 sec before showing the page. is this because of the scripts. can i move the case stement to the bottom of the page or what can i do to speed it up.
cheers aron.
here is a snippit of the page.
<?
$connection = mysql_connect("","","") or die('Could not connect to the database server');
$db = mysql_select_db("test", $connection) or die ("Unable to select database.");
$addressbar = $_SERVER['QUERY_STRING'];
switch ($page)
{
case 'search':
$page_name = "Search Results";
break;
case 'house':
$page_name = "House Sales";
break;
case 'business':
$page_name = "Business Sales";
break;
case 'land':
$page_name = "Land Sales";
break;
case 'prestige':
$page_name = "Prestige Properties";
break;
case 'riverfront':
$page_name = "Riverfront Property";
break;
case 'acreage':
$page_name = "Acreage Living";
break;
case 'rentals':
$page_name = "Rentals";
break;
case 'apartments':
$page_name = "Apartments";
break;
case 'commercial':
$page_name = "Commercial Industrial";
break;
case 'see_property':
$page_name = "Current Listings";
break;
case 'bsmith':
$page_name = "Benjamin Smith's Listings";
break;
case 'rbracher':
$page_name = "Roy Bracher's Listings";
break;
case 'pfoote':
$page_name = "Peter Foote's Listings";
break;
case 'sbrowne':
$page_name = "Stephen Browne's Listings";
break;
case 'abuckley':
$page_name = "Angela Buckley's Listings";
break;
case 'sedwards':
$page_name = "Scott Edwards's Listings";
break;
case 'ffahir':
$page_name = "Fyri Fahir's Listings";
break;
case 'mfoote':
$page_name = "Matthew Foote's Listings";
break;
case 'pharper':
$page_name = "Peter Harper's Listings";
break;
case 'gharris':
$page_name = "Gayle Harris's Listings";
break;
case 'mhill':
$page_name = "Morgan Hill's Listings";
break;
case 'ahuntly':
$page_name = "Allan Huntly's Listings";
break;
case 'klewis':
$page_name = "Kerry Lewis's Listings";
break;
case 'bmason':
$page_name = "Brian Mason's Listings";
break;
case 'smason':
$page_name = "Stephanie Mason's Listings";
break;
case 'pmay':
$page_name = "Peter May's Listings";
break;
case 'smoghaddam':
$page_name = "Saeed Moghaddam's Listings";
break;
case 'tmunro':
$page_name = "Tony Munro's Listings";
break;
case 'nnorton':
$page_name = "Nikki Norton's Listings";
break;
case 'arowe':
$page_name = "Ashley Rowe's Listings";
break;
case 'msanghera':
$page_name = "Mark Sanghera's Listings";
break;
case 'dschroder':
$page_name = "Derek Schroder's Listings";
break;
case 'eschroder':
$page_name = "Elviry Schroder's Listings";
break;
case 'jsmith':
$page_name = "Joshua Smith's Listings";
break;
}
if($nav == 'simsub'){
switch ($suburb)
{
case 'ANSTEAD':
$price_low = $price - 50000;
$price_high = $price + 100000;
$set_1 = ("'ANSTEAD' OR suburb='PULLENVALE' OR suburb='BROOKFIELD' OR suburb='UPPER BROOKFIELD' OR suburb='PINJARRA HILLS'");
$sql = "SELECT FROM Listings WHERE status<>'sold' AND suburb=$set_1 HAVING price BETWEEN $price_low AND $price_high ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database test");
$rows = mysql_num_rows($sql_result);
break;
case 'PULLENVALE':
$price_low = $price - 50000;
$price_high = $price + 100000;
$set_1 = ("'ANSTEAD' OR suburb='PULLENVALE' OR suburb='BROOKFIELD' OR suburb='UPPER BROOKFIELD' OR suburb='PINJARRA HILLS'");
$sql = "SELECT FROM Listings WHERE status<>'sold' AND suburb=$set_1 HAVING price BETWEEN $price_low AND $price_high ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database test");
$rows = mysql_num_rows($sql_result);
break;
case 'BROOKFIELD':
$price_low = $price - 50000;
$price_high = $price + 100000;
$set_1 = ("'ANSTEAD' OR suburb='PULLENVALE' OR suburb='BROOKFIELD' OR suburb='UPPER BROOKFIELD' OR suburb='PINJARRA HILLS'");
$sql = "SELECT FROM Listings WHERE status<>'sold' AND suburb=$set_1 HAVING price BETWEEN $price_low AND $price_high ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database test");
$rows = mysql_num_rows($sql_result);
break;
case 'UPPER BROOKFIELD':
$price_low = $price - 50000;
$price_high = $price + 100000;
$set_1 = ("'ANSTEAD' OR suburb='PULLENVALE' OR suburb='BROOKFIELD' OR suburb='UPPER BROOKFIELD' OR suburb='PINJARRA HILLS'");
$sql = "SELECT FROM Listings WHERE status<>'sold' AND suburb=$set_1 HAVING price BETWEEN $price_low AND $price_high ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database test");
$rows = mysql_num_rows($sql_result);
break;
case 'PINJARA HILLS':
$price_low = $price - 50000;
$price_high = $price + 100000;
$set_1 = ("'ANSTEAD' OR suburb='PULLENVALE' OR suburb='BROOKFIELD' OR suburb='UPPER BROOKFIELD' OR suburb='PINJARRA HILLS'");
$sql = "SELECT FROM Listings WHERE status<>'sold' AND suburb=$set_1 HAVING price BETWEEN $price_low AND $price_high ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database test");
$rows = mysql_num_rows($sql_result);
break;
case 'BELLBOWRIE':
$set_1 = ("'BELLBOWRIE' OR suburb='MOGGILL' OR suburb='KARANA DOWNS' OR suburb='KARALEE' OR suburb='MOUNT CROSBY'");
$price_low = $price - 50000;
$price_high = $price + 100000;
$sql = "SELECT FROM Listings WHERE status<>'sold' AND suburb=$set_1 HAVING price BETWEEN $price_low AND $price_high ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database test");
$rows = mysql_num_rows($sql_result);
break;
case 'MOGGILL':
$set_1 = ("'BELLBOWRIE' OR suburb='MOGGILL' OR suburb='KARANA DOWNS' OR suburb='KARALEE' OR suburb='MOUNT CROSBY'");
$price_low = $price - 50000;
$price_high = $price + 100000;
$sql = "SELECT FROM Listings WHERE status<>'sold' AND suburb=$set_1 HAVING price BETWEEN $price_low AND $price_high ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database test");
$rows = mysql_num_rows($sql_result);
break;
.
.
.
.
.
.
if($nav == 'search'){
$size = count($suburbs);
$count = 1;
$sql_2 = "";
foreach($suburbs as $suburbsElement)
{
$sql_2 .= ("'$suburbsElement'");
if ($count < $size)
{
$sql_2 .= (' OR suburb= ');
}
$count++;
}
if ($property != 'Any'){
$sql = "SELECT
FROM Listings
WHERE status != 'sold'
AND suburb = ".$sql_2."
AND type = '".$property."'
HAVING price BETWEEN ".$pricefrom." AND ".$priceto."
AND beds BETWEEN ".$bedfrom." AND ".$bedto."
AND land_area BETWEEN ".$landfrom." AND ".$landto."
AND baths <= ".$bath."
AND lugarage <= ".$lug."
ORDER BY ".$order;
//$sql = "SELECT FROM Listings WHERE suburb=$sql_2 AND type='$property' HAVING price BETWEEN $pricefrom AND $priceto ORDER BY $order";
//$sql = "SELECT FROM Listings WHERE suburb=".$sql_2." AND type='".$property."' HAVING price BETWEEN ".$pricefrom." AND ".$priceto." HAVING beds BETWEEN ".$bedfrom." AND ".$bedto." ORDER BY ".$order;
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database check1");
$rows = mysql_num_rows($sql_result);
}else{
$sql = "SELECT
FROM Listings
WHERE status != 'sold'
AND suburb = ".$sql_2."
HAVING price BETWEEN ".$pricefrom." AND ".$priceto."
AND beds BETWEEN ".$bedfrom." AND ".$bedto."
AND land_area BETWEEN ".$landfrom." AND ".$landto."
AND baths <= ".$bath."
AND lugarage <= ".$lug."
ORDER BY ".$order;
//$sql = "SELECT FROM Listings WHERE suburb=$sql_2 HAVING price BETWEEN $pricefrom AND $priceto ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database check2");
$rows = mysql_num_rows($sql_result);
}
}
if($nav == 'profile'){
$sql = "SELECT * FROM Listings WHERE status<>'sold' AND agent = $agent_id ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database");
$rows = mysql_num_rows($sql_result);
}
if($nav == 'ss'){
$sql = "SELECT * FROM Listings WHERE status<>'sold' AND suburb LIKE '%$suburb%' ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database");
$rows = mysql_num_rows($sql_result);
}
if($nav == 'all'){
$sql = "SELECT * FROM Listings WHERE status<>'sold' ORDER BY $order";
$sql_result = mysql_query($sql,$connection) or die ("Could not connect to database");
$rows = mysql_num_rows($sql_result);
}
.
.
.
etc..