PHP SQL Server
$wd1=$_POST['wd1']; //原來是這樣
sql="select * from xxx where pr_id like '%". $wd1."%'";
//**********************************************************
//現在要做成假如輸入:123 王
//sql="select * from xxx where pr_id like '%123%' and name like '%王%'";
//等等就像上面這樣,使用者輸入的條件可能是多個如:123 王 男或者一個
wd1=$_POST['wd1']; //現在接收input資料,
$split_dir = split ('[ ]',$wd1);//我想著轉換成數組
//然後sql server2000語句不知道咋寫了,不知道我的意思表達明白了沒有,我想表達清楚,求解答思路,
sql="???";
回複討論(解決方案)
真心,不會了啊。。求教。。提前感謝各位!!
$where = "1=1";$arr = array('col1','col2','col3');foreach($split_dir AS $key=>$val){$where .= " AND ".$arr[$key]." LIKE '%".$val."%' ";}
$arr是需要在where裡面出現的欄位名,當然了,安全方面的事你自己控制。
這個只是個大概的思路,這個很顯然不夠完善,因為別人可能輸入 123 男 王 或者增加輸入之間的空格,這個都需要你自己去控制
嗯。。謝謝我試試
嘿嘿好了。。。。。我是這樣寫的
$wd1=$_POST['wd1'];
$split_dir = split ('[ ]',$wd1);
$arr = array('編碼','名稱','類別','型號');
$where2=" ";
for($m=0;$m
if($m==(count($split_dir)-1))
{
for($n=0;$n
if($n==(count($arr)-1)){
$where2=$where2.$arr[$n]." like '%".$split_dir[$m]."%'";
}else{
$where2=$where2.$arr[$n]." like '%".$split_dir[$m]."%' or ";
}
}
$where2=$where2." ";
}else{
for($n=0;$n
if($n==(count($arr)-1)){
$where2=$where2.$arr[$n]." like '%".$split_dir[$m]."%'";
}else{
$where2=$where2.$arr[$n]." like '%".$split_dir[$m]."%' or ";
}
}
$where2=$where2." ) and ( ";
}
}