Amita Singh
asked on
Sql Query show error "SELECT statements have a different number of columns"
Hi,
This is a my search query. when i want to add more fields like `objective`, `salary`, `salary_thousands` in this query
This is a my search query. when i want to add more fields like `objective`, `salary`, `salary_thousands` in this query
$sql_search = " SELECT `id` , `uid` , `company_name` , `industry` , `functional_area` , `current_job_date` , `current_job_date_month` , `job_responsibility` FROM employee_info WHERE 1 = 1 ";
its show error "SELECT statements have a different number of columns"if($_REQUEST['skills'])
{
// Search for employees from Table: employee_info
$sql_search = " SELECT `id` , `uid` , `company_name` , `industry` , `functional_area` , `current_job_date` , `current_job_date_month` , `job_responsibility` FROM employee_info WHERE 1 = 1 ";
//$sql_search = "SELECT * FROM employee_info WHERE 1 = 1 ";
if($city!='')
{
$sql_search .= " AND city='$city' ";
}
if($skillsMain!='' && $skillsMain!='.' & $skillsMain!=',')
{
$sql_search .= " AND ( ";
$skillsArr = explode(',', $skillsMain);
$arrCount = count($skillsArr);
$counter = 1;
foreach($skillsArr as $skills)
{
$skills = trim($skills);
$sql_search .=
" ( key_skills LIKE '%$skills%' OR job_title LIKE '%$skills%' OR current_designation LIKE '%$skills%'
OR company_name LIKE '%$skills%' OR objective LIKE '%$skills%' OR resum_headline LIKE '%$skills%'
OR job_responsibility LIKE '%$skills%' OR institute LIKE '%$skills%' OR institute LIKE '%$skills%' ) ";
if($counter < $arrCount)
{
$sql_search .= " OR ";
}
$counter ++;
}
$sql_search .= " ) ";
}
// Filter by Experience
if($exp_min && $exp_max)
{
$sql_search .= " AND total_experience between $exp_min and $exp_max";
}
else if($exp_min)
{
$sql_search .= " AND total_experience > $exp_min";
}
else if($exp_max)
{
$sql_search .= " AND total_experience < $exp_max";
}
else if($experience!='')
{
$sql_search .= " AND total_experience = $experience";
}
// Filter By Salary
if($sal_min && $sal_max)
{
$sql_search .= " AND salary between $sal_min and $sal_max";
}
else if($sal_min)
{
$sql_search .= " AND salary > $sal_min";
}
else if($sal_max)
{
$sql_search .= " AND salary < $sal_max";
}
else if($salary!='')
{
$sql_search .= " AND salary='$salary'";
}
if($func!='') {
$sql_search .= " AND functional_area='$func'";
}
if($inds!='') {
$sql_search .= " AND industry='$inds'";
}
if($qual!='') {
$sql_search .= " AND qualification='$qual'";
}
// for keywords
if($keywords!='' && $refineskills!='' )
{
$sql_search .= " AND ( job_responsibility LIKE '%".$keywords."%' OR key_skills LIKE '%".$keywords."%' ) ";
}
$sql_search .= " UNION ";
$sql_search .= " SELECT `id` , `uid` , `pre_company_name` , `pre_industry` , `pre_functional_area` , `pre_job_date` , `pre_job_date_month` , `pre_responsibility` FROM prev_companies
WHERE 1 = 1 ";
$skillsArr1 = explode(',', $skillsMain);
if($skillsArr1!='' && $skillsArr1!='.' & $skillsArr1!=',')
{
$sql_search .= " AND ( ";
$arrCount1 = count($skillsArr1);
$counter1 = 1;
foreach($skillsArr1 as $skills1)
{
$skills1 = trim($skills1);
$sql_search .= " ( pre_company_name LIKE '%".$skills1."%' OR pre_industry LIKE '%". $skills1 ."%' OR pre_functional_area LIKE '%". $skills1 ."%' OR pre_responsibility LIKE '%". $skills1 ."%' ) ";
if($counter1 < $arrCount1)
{
$sql_search .= " OR ";
}
$counter1 ++;
}
$sql_search .= " ) ";
}
employee_info.sql
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
It might make sense to do this with two queries. Just a thought...
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for giving me your valuable time.