我有string
:
$searchkey="a b c";
我有三列:
$column=array('column1','column2','column3');
我想检查这些列中的每个单词并获取单个查询字符串。为了得到它,我做了以下......但它看起来并不是我想要的......我是PHP的新手,所以我是堆栈。你可以帮忙解决它或任何其他简单的方法来获得一个查询字符串!!!
$searchkey="a b c";
$words = EXPLODE(" ",$searchkey);
$column=array('column1','column2','column3');
foreach($column as $column){
for($i=0; $i<count($words); $i++){
$string1.=''.$column.' like %'.$words[$i].'% or ';
}
$string1 = SUBSTR($string1,0,STRLEN($string1)-4);
$string2.= '('.$string1.') or ';
}
echo $string2= SUBSTR($string2,0,STRLEN($string2)-4);
它给了我:
(column1喜欢%a%或column1喜欢%b%或column1喜欢%c%)或(column1 像%a%或column1一样,%b%或column1,如%c%column2,如%a%或 column2喜欢%b%或column2喜欢%c%)或(column1喜欢%a%或column1 例如%b%或column1像%c%column2一样,%a%或column2,如%b%或 column2喜欢%c%column3,如%a%或column3,如%b%或column3之类 %C%)
但是,我想得到:
(column1喜欢%a%或column1喜欢%b%或column1喜欢%c%)或 (column2喜欢%a%或column2喜欢%b%或column2喜欢%c%)或 (column3喜欢%a%或column3,如%b%或column3,如%c%)
提前致谢。
答案 0 :(得分:1)
您只需要将$string1 = "";
语句添加为foreach
循环体中的第一条指令,在每次迭代中重置它,而不是每次都添加它!
...
foreach($column as $column) {
$string1 = ""; // <-- Add this line, and every thing will be fine :)
for($i=0; $i<count($words); $i++) {
$string1.=''.$column.' like %'.$words[$i].'% or ';
}
...