/***************conditions_search.html****************/
/***************display_search_SQL.php*********************/
//從conditions_search.html接收到四個(gè)條件,
//condition1,condition2,condition3,condition4。
//其中有文本框輸入的字符串,有列表框下拉選擇的,
//這些接收條件的方式都不重要。
//條件還可以增加(沒什么限制,當(dāng)然也不要太大,超過數(shù)組的上限)。
//以下有幾點(diǎn)注意:
//認(rèn)為條件值為空時(shí),不限制;
//要查詢的表名為testtable;
//condition1對(duì)應(yīng)的字段名為column1……
//
$ConditionsNumber=4; //共有4個(gè)條件。(可改為實(shí)際使用的條件數(shù))
$ConditionsArray=array("$condition1","$condition2","$condition3","$condition4");
//把各個(gè)條件排入一個(gè)數(shù)組中,方便下面循環(huán)。(數(shù)組很容易擴(kuò)充)
$SearchSQLArray=array(" where column1='$condition1'"," where column2 like '%$condition2%'"," where column3='$condition3'"," where column4='$condition4'");
//預(yù)寫好一些SQL語句,下面再根據(jù)情況處理。(數(shù)組很容易擴(kuò)充)
for($i=0;$i<$ConditionsNumber;$i++)
{
if($ConditionsArray[$i]=="")
$SearchSQLArray[$i]="";
//第一步處理:如果條件值為空,相應(yīng)的SQL語句為空。
$haveWhere=false; //設(shè)“存在where”檢查標(biāo)志的初值為false。
for($j=0;$j<$i;$j++)
//從開始到目前循環(huán)的i,處理有哪些where
//需要變?yōu)閍nd。
{
$wherePosition=strpos($SearchSQLArray[$j],"where");
//檢查i前面是否有where出現(xiàn)。
if(($wherePosition=="1")&&($haveWhere==false))
{
$SearchSQLArray[$i]=ereg_replace("where","and",$SearchSQLArray[$i]);
//where的位置為1,且前面已有where。
//則where換成and。
$haveWhere=true; //"存在where”檢查標(biāo)志設(shè)為true。
}
}
};
for($i=0;$i<$ConditionsNumber;$i++)
$sql=$sql.$SearchSQLArray[$i];
$sql="select * from mytable".$sql.";";
//組成SQL語句
echo $sql;
?>
/**************display_search_SQL.php*********************/
摘自:PHP中文用戶
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com