$str = trim($_GET['dept']);  var_dump($str);

解决方案 »

  1.   

    错误信息显示:出错行是 21 行
    请指出 21 行在哪里!
    你贴出的代码中,21 行是 echo $mydept;,显然不是的你对输出的数据做了编码转换(iconv('gb2312','utf-8',$rs->Fields['dept']->Value))
    显然页面是 utf-8 的
    那么 $_GET['dept'] 也就是 utf-8 的了
    据此,你不可能查找到中文相关的结果
      

  2.   


    结果是这个:
    string '办公室' (length=9)
      

  3.   

    string '办公室' (length=9)
    显然是 utf-8 编码的!access 是 gbk 的你如何能检索到正确数据?
      

  4.   

    大哥眼利,21行是这句:
     $rs = $conn->Execute($mysql);不可能该怎么办啊?我想在一个表里找到关于这个部门的相关记录啊!这个条件是中文来的。
      

  5.   

    $str = iconv('utf-8', 'gbk', trim($_GET['dept']));  
    $mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '*".$str."*'  ";
    $rs = $conn->Execute($mysql);
      

  6.   

    另外
    $mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '*".$str."*'  ";
    为什么是 *
    应该
    $mysql ="  select *,0 as ord from checkpro where ifstop=0 and dept like '%".$str."%'  ";
    才对
      

  7.   

    我用的是access数据库啊,用%是不可以的
      

  8.   

    版主,用你的方法,$mysql输出的是乱码了:
     select *,0 as ord from checkpro where ifstop=0 and dept like '*�칫��*'
      

  9.   

    问题解决,结贴了,这个问题,造成的原因有两个:
    第一个是地址栏里输入的值用iconv()转了的话,在前台用$mysql输出,还是会显示乱码,但其实作为查询来说,已经成功查询了。
    第二个是,为什么没有查询结果,是由于语法有问题,如果在数据库直接进行like查询,是要用**而不是%%来进行的。但是在php里,是用%%才正确。
    谢谢各位的帮助。
      

  10.   

    对呀,gbk 的串在 utf-8 环境中当然是“乱码”啦!
    所以你在输出查询结果时不是转码了吗?