$sql = "SELECT  mingc FROM info WHERE 1=1";模糊判断
if($mingc != ""){
   $sql.="AND mingc like '%$mingc%' ";
}如何在名称文本框模糊查询时 去掉空格》》可以用trim($mingc)但问题是==》 先打一个空格在输入模糊条件/ 或者相反
 
【 即同时去除左右空格,且可进行模糊查询】等待.......

解决方案 »

  1.   

    没懂需求要表达什么...既然都知道用trim了,还想问神马?如果空格有特殊含义,就要在trim之前事先自己再处理...
      

  2.   

    你试试不就知道了,trim()可以去除“多余”空格,用"_"代表空格的话:
    “_$img!=''” 和 “$img!=''_” 用trim过滤后都会得到 "$img!=''"
      

  3.   


    文本框输入条件进行模糊查询
      
       假设[]表示为文本框用以输入===》a--模糊条件::
       同时去除左右空格==即 [  a]   或者[a   ] 或者[   a  ]
      三种情况都可以进行模糊查询??
      

  4.   

    trim()本来就是去除左右空格啊,......今天怎么了?
      

  5.   


    就是啊:
     
     比如我的模糊条件是a  查询文本框这样输入 -- 
     @1  [       a]    ==>左边任意空格+a
     @2  [a       ]   ===>最开始输入a ,右边任意空格
     @3  [      a    ]  ==>左右任意空格 ,中间输入a
      
      模糊查询时显示无数据???  
      
      

  6.   

    我觉得你需要借助第三方的搜索.比如sphinx mysql的模糊搜索达不到你的要求.
      

  7.   

    if(!empty($mingc)){
      $sql.="AND mingc like '%trim($mingc)%' ";
    }
      

  8.   

    表示没看清,
    但伱的语句最好不要这样写$sql = "SELECT mingc FROM info WHERE 1=1"; //这个where 1=1  伱试下 伱懂的
      

  9.   

    你是在哪里嵌入的空格?mysql中直接执行时,没必要加空格吧,你自己定;
    如果用php代码执行,那trim()就可以实现了。
      

  10.   


    OK! 谢谢大家,问题解决了。

    $gongzhong = trim($mingc);
           // 岗位名称
    if($gongzhong != "")
    {
    $sql.= "AND mingcheng like '%$gongzhong%'";
    } 原因是不能再like里这样写--如12楼所示@!  需先定义个变量,去除空格,在写入like条件
      

  11.   

    <input type="text" name="kw" />
    <?php
      //假设使用post方法,这里不考虑安全问题
      extract($_POST);
      $kw=str_replace(" "," ",$kw);//全角空格替换成半角空格
      $kw=explode(" ",trim($kw," "));
      $where=" where true";
      if(count($kw)>0)
      {
        foreach($kw as $k)
        {
          $where.=" or title like '%{$k}%'";
        }
      }
      $sql="select * from {$td_pre}article {$where}";
      $query->query($sql,1,false);//这里使用了一个SQL查询类,可以不考虑这个类
      foreach($query->ros as $q)
      {
        //需要输出的内容放这里。
      }
    ?>