function search($keyword,$table,$field)
{
//========================================================
//Montal parameters description:
//keyword is a keyword, such as "Beijing Capital Direction Train". With space or without
//table is the table name, such as enter_gongyin_pic.
//field is a field combination. If you look for a field, write it name
//If you search for more than two, use name+picdir
//========================================================
//First determine the field
$new_field=explode("+",$field); //Press + strip
$field_count=count($new_field); //The number of results obtained
$newstring=explode(" ",$keyword); //Strip it by space
$newstring2=array();
//Remove the useless spaces of the string.
$i=0;
foreach ($newstring as $key => $value) {
if($value!="")
{
$newstring2[$i]=$value;
$i++;
}
}
// Remove the useless spaces of the string,
$result_count=count($newstring2); //The number of results obtained
//The following generates SQL statement
//************************ if($field_count==1) //Find 1 field START *********************************
if($field_count==1) //Find 1 field
{
if($result_count==1) //Judge if it is a key segment
{
$newstring_search=$newstring2[0];
$sql="SELECT *
FROM `$table`
WHERE `".$new_field[0]."` LIKE '%$newstring_search%'";
}
if($result_count>1) //Judge if it is multiple key segments
{
$sql="SELECT *
FROM `$table`
WHERE ";
$sql_add="";
foreach ($newstring2 as $key => $value)
{
if($key==0)
{
$sql_add=$sql_add."`".$new_field[0]."` LIKE '%".$value."%'";
}
else
{
$sql_add=$sql_add." OR `".$new_field[0]."` LIKE '%".$value."%'";
}
}
$sql=$sql.$sql_add;
}
}
//************************ if($field_count==1) //Find 1 field END *********************************************
//************************ if($field_count>1) //Find multiple fields START ******************************************
if($field_count>1) //Find multiple fields, at this time $new_field is an array. Have multiple fields
{
if($result_count==1) //Judge if it is a key segment
{
$newstring_search=$newstring2[0]; //$newstring_search is the keyword
$sql="SELECT *
FROM `$table`
WHERE ";
$sql_add="";//New fields added
foreach ($new_field as $key => $value)
{
if($key==0)
{
$sql_add=$sql_add."`".$value."` LIKE '%".$newstring_search."%'";
}
else
{
$sql_add=$sql_add." OR `".$value."` LIKE '%".$newstring_search."%'";
}
}
$sql=$sql.$sql_add;
}
if($result_count>1) //Judge if it is multiple key segments (multiple keywords) ==============================================
{
$sql="SELECT *
FROM `$table`
WHERE ";
$sql_add="";//New fields are added
foreach ($new_field as $key => $value)
{
if($key==0) //When encountering $new_field[0] Example: `a` LIKE '%1%' OR `a` LIKE '%2%' OR `a` LIKE '%3%'
{ //Nested foreach
foreach ($newstring2 as $key2 => $value2)
{
if($key2==0)
{
$sql_add=$sql_add."`".$value."` LIKE '%".$value2."%'";
}
else
{
$sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'";
}
}
//Nested foreach
}
else
//(If it is multi-field, for example, look up the name+picdir table) Start FOREACH continuous loop, and execute ELSE $new_field[1] $new_field[2] $new_field[3] each time.
//The corresponding value is $value
{
//Nested foreach (multiple fields and multiple keywords)
foreach ($newstring2 as $key2 => $value2)
{
if($key2==0)
{
$sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'";
}
else
{
$sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'";
}
}
//Nested foreach
}
}//foreach ($new_field as $key => $value) ends
$sql=$sql.$sql_add;
}//if($result_count>1) end
}//if($field_count>1) end
//************************ if($field_count>1) //Find multiple fields END *********************************************************
return $sql;
}
{
//========================================================
//Montal parameters description:
//keyword is a keyword, such as "Beijing Capital Direction Train". With space or without
//table is the table name, such as enter_gongyin_pic.
//field is a field combination. If you look for a field, write it name
//If you search for more than two, use name+picdir
//========================================================
//First determine the field
$new_field=explode("+",$field); //Press + strip
$field_count=count($new_field); //The number of results obtained
$newstring=explode(" ",$keyword); //Strip it by space
$newstring2=array();
//Remove the useless spaces of the string.
$i=0;
foreach ($newstring as $key => $value) {
if($value!="")
{
$newstring2[$i]=$value;
$i++;
}
}
// Remove the useless spaces of the string,
$result_count=count($newstring2); //The number of results obtained
//The following generates SQL statement
//************************ if($field_count==1) //Find 1 field START *********************************
if($field_count==1) //Find 1 field
{
if($result_count==1) //Judge if it is a key segment
{
$newstring_search=$newstring2[0];
$sql="SELECT *
FROM `$table`
WHERE `".$new_field[0]."` LIKE '%$newstring_search%'";
}
if($result_count>1) //Judge if it is multiple key segments
{
$sql="SELECT *
FROM `$table`
WHERE ";
$sql_add="";
foreach ($newstring2 as $key => $value)
{
if($key==0)
{
$sql_add=$sql_add."`".$new_field[0]."` LIKE '%".$value."%'";
}
else
{
$sql_add=$sql_add." OR `".$new_field[0]."` LIKE '%".$value."%'";
}
}
$sql=$sql.$sql_add;
}
}
//************************ if($field_count==1) //Find 1 field END *********************************************
//************************ if($field_count>1) //Find multiple fields START ******************************************
if($field_count>1) //Find multiple fields, at this time $new_field is an array. Have multiple fields
{
if($result_count==1) //Judge if it is a key segment
{
$newstring_search=$newstring2[0]; //$newstring_search is the keyword
$sql="SELECT *
FROM `$table`
WHERE ";
$sql_add="";//New fields added
foreach ($new_field as $key => $value)
{
if($key==0)
{
$sql_add=$sql_add."`".$value."` LIKE '%".$newstring_search."%'";
}
else
{
$sql_add=$sql_add." OR `".$value."` LIKE '%".$newstring_search."%'";
}
}
$sql=$sql.$sql_add;
}
if($result_count>1) //Judge if it is multiple key segments (multiple keywords) ==============================================
{
$sql="SELECT *
FROM `$table`
WHERE ";
$sql_add="";//New fields are added
foreach ($new_field as $key => $value)
{
if($key==0) //When encountering $new_field[0] Example: `a` LIKE '%1%' OR `a` LIKE '%2%' OR `a` LIKE '%3%'
{ //Nested foreach
foreach ($newstring2 as $key2 => $value2)
{
if($key2==0)
{
$sql_add=$sql_add."`".$value."` LIKE '%".$value2."%'";
}
else
{
$sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'";
}
}
//Nested foreach
}
else
//(If it is multi-field, for example, look up the name+picdir table) Start FOREACH continuous loop, and execute ELSE $new_field[1] $new_field[2] $new_field[3] each time.
//The corresponding value is $value
{
//Nested foreach (multiple fields and multiple keywords)
foreach ($newstring2 as $key2 => $value2)
{
if($key2==0)
{
$sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'";
}
else
{
$sql_add=$sql_add." OR `".$value."` LIKE '%".$value2."%'";
}
}
//Nested foreach
}
}//foreach ($new_field as $key => $value) ends
$sql=$sql.$sql_add;
}//if($result_count>1) end
}//if($field_count>1) end
//************************ if($field_count>1) //Find multiple fields END *********************************************************
return $sql;
}