I am into creating a conditional search which will depend upon say about 9 parameters. For now I am only using 4 and it has become quite large and hectic to maintain. Can someone suggest the best way so that I can shorten my line of codes and maintain it easily. Below is my code
if($min_year=="Select" && $max_year=="") {
if($makes=='All' && $models=='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where vehicles.manufacturerID=models.manufacturerID and vehicles.modelID=models.modelID
and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where vehicles.manufacturerID=models.manufacturerID and vehicles.modelID=models.modelID
and models.manufacturerID=manufacturers.manufacturerID");
} elseif($makes!='All' && $models=='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails,vehicles.* from models, manufacturers,
vehicles where models.manufacturerID=$makes and vehicles.manufacturerID=models.manufacturerID and
vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page
");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where models.manufacturerID=$makes and vehicles.manufacturerID=models.manufacturerID and
vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID");
} elseif($makes=='All' && $models!='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails,vehicles.* from models, manufacturers,
vehicles where vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID
LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID");
} elseif($makes!='All' && $models!='All Models' && $makes!='select' && $models!='select') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where models.modelID=$models and models.manufacturerID=$makes and vehicles.modelID=models.modelID
and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where models.modelID=$models and models.manufacturerID=$makes and vehicles.modelID=models.modelID
and models.manufacturerID=manufacturers.manufacturerID");
} else {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models,
manufacturers, vehicles where vehicles.modelID=models.modelID and
models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers, vehicles
where vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID");
}
} elseif($min_year!="Select" && $max_year==""){
if($makes=='All' && $models=='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where vehicles.manufacturerID=models.manufacturerID and vehicles.year>=$min_year and
vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page
");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where vehicles.manufacturerID=models.manufacturerID and vehicles.year>=$min_year and
vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID");
} elseif($makes!='All' && $models=='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where models.manufacturerID=$makes and vehicles.manufacturerID=models.manufacturerID and
vehicles.year>=$min_year and vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID
LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where models.manufacturerID=$makes and vehicles.manufacturerID=models.manufacturerID and
vehicles.year>=$min_year and vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID
");
} elseif($makes=='All' && $models!='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where vehicles.modelID=models.modelID and vehicles.year>=$min_year and
models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where vehicles.modelID=models.modelID and vehicles.year>=$min_year and
models.manufacturerID=manufacturers.manufacturerID");
} else {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails,vehicles.* from models, manufacturers,
vehicles where models.modelID=$models and models.manufacturerID=$makes and vehicles.modelID=models.modelID
and vehicles.year>=$min_year and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where models.modelID=$models and models.manufacturerID=$makes and vehicles.modelID=models.modelID
and vehicles.year>=$min_year and models.manufacturerID=manufacturers.manufacturerID");
}
} elseif($min_year=="Select" && $max_year!=""){
if($makes=='All' && $models=='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where vehicles.manufacturerID=models.manufacturerID and vehicles.year<=$max_year and
vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page
");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where vehicles.manufacturerID=models.manufacturerID and vehicles.year<=$max_year and
vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID");
} elseif($makes!='All' && $models=='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where models.manufacturerID=$makes and vehicles.manufacturerID=models.manufacturerID and
vehicles.year<=$max_year and vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID
LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where models.manufacturerID=$makes and vehicles.manufacturerID=models.manufacturerID and
vehicles.year<=$max_year and vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID
");
} elseif($makes=='All' && $models!='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where vehicles.modelID=models.modelID and vehicles.year<=$max_year and
models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where vehicles.modelID=models.modelID and vehicles.year<=$max_year and
models.manufacturerID=manufacturers.manufacturerID");
} else {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where models.modelID=$models and models.manufacturerID=$makes and vehicles.modelID=models.modelID
and vehicles.year<=$max_year and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where models.modelID=$models and models.manufacturerID=$makes and vehicles.modelID=models.modelID
and vehicles.year<=$max_year and models.manufacturerID=manufacturers.manufacturerID");
}
} else {
if($makes=='All' && $models=='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where vehicles.manufacturerID=models.manufacturerID and vehicles.year<=$max_year and vehicles.year>=$min_year
and vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page
");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where vehicles.manufacturerID=models.manufacturerID and vehicles.year<=$max_year and vehicles.year>=$min_year
and vehicles.modelID=models.modelID and models.manufacturerID=manufacturers.manufacturerID");
} elseif($makes!='All' && $models=='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where models.manufacturerID=$makes and vehicles.manufacturerID=models.manufacturerID and
vehicles.year<=$max_year and vehicles.year>=$min_year and vehicles.modelID=models.modelID
and models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page ");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where models.manufacturerID=$makes and vehicles.manufacturerID=models.manufacturerID and
vehicles.year<=$max_year and vehicles.year>=$min_year and vehicles.modelID=models.modelID
and models.manufacturerID=manufacturers.manufacturerID");
} elseif($makes=='All' && $models!='All Models') {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where vehicles.modelID=models.modelID and vehicles.year<=$max_year and vehicles.year>=$min_year and
models.manufacturerID=manufacturers.manufacturerID LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where vehicles.modelID=models.modelID and vehicles.year<=$max_year and vehicles.year>=$min_year and
models.manufacturerID=manufacturers.manufacturerID");
} else {
$select = mysql_query("select models.modelID, models.manufacturerID, models.modelName, manufacturers.manufacturerID,
manufacturers.manufacturerName, manufacturers.manufacturerDetails, vehicles.* from models, manufacturers,
vehicles where models.modelID=$models and models.manufacturerID=$makes and vehicles.modelID=models.modelID
and vehicles.year<=$max_year and vehicles.year>=$min_year and models.manufacturerID=manufacturers.manufacturerID
LIMIT $start, $per_page");
$select_count = mysql_query("select count(vehicles.modelID) as count from models, manufacturers,
vehicles where models.modelID=$models and models.manufacturerID=$makes and vehicles.modelID=models.modelID
and vehicles.year<=$max_year and vehicles.year>=$min_year and models.manufacturerID=manufacturers.manufacturerID
");
}
}
As you can see these loops are getting longer and complex . Please suggest something. Thanks in advance
Make your sql more generic instead of prebuilding every case.
Just a quick example:
scratch
PS: Do not forget to escape your sql-query variables!