SELECT tid FROM esp_typelist where typename  like '%公司简介%' and lng='cn'这么写的话, 返回的 $rs 有资源,但是用 mysql_fetch_row($rs) 没有任何返回
数据库查过也有数据!但是 把 like 这个条件 去掉后,就有数据返回了
http://zhidao.baidu.com/question/285866194.html

解决方案 »

  1.   

    改成 SELECT `tid` FROM `esp_typelist` where `typename` like '%公司简介%' and `lng`='cn';
    试试 字段名上加 tab键上面的 小引号,可能typename是mysql的关键字
      

  2.   


    数据库的编码是 utf8-generial-ci
      

  3.   

    很可能是编码不一致造成的。连接数据库后先设置一下编码试试:
    mysql_query('SET NAMES utf8');
      

  4.   

    还是没用!你可以去下载一个 易想 cms (espcms) 然后用最基本的 mysql_query()函数查任何一个有中文数据的表哥获得结果,再尝试获得数组看看,凡是有 like 关键字就不行!
      

  5.   

    跟like关系不大感觉,前面几个说到编码一致的问题,主要是数据库编码与页面编码是否一致
    用mysql_fetch_array试下
      

  6.   

    我代码这么写: $sql="SELECT tid FROM esp_typelist where typename like '%$keyword%' and lng='cn'";  echo $sql."<br>";  $result = $db->query($sql);
      
      echo $result;然后页面显示这个:SELECT tid FROM esp_typelist where typename like '%标志%' and lng='cn'
    Resource id #7证明是有记录集啊,可是就是提取不出来比如下面这么写: $arr=$db->fetch_row($result);
      
      echo is_array($arr);
      
      
      while( $arr=mysql_fetch_array($result))
      {
     echo $arr[0]."<br>"; 
      }
      易思CMS网上可以搜索的出来
      

  7.   

    Resource id #7不代表里面有东西你可以echo mysql_num_rows($结果集);看看
      

  8.   

    解决了!!我用 mysql_fetch_assoc  ,就可以找到数据,很奇怪!!另外页面我从新用文本编辑器另存为保存了一下!
      

  9.   

    就是编码不一致导致乱码  你用乱码like当然找不到
      

  10.   


    现在直接在 sql 语句里写 like '%公司%' 可以找到数据,但是如果是 $_GET 获取的  '公司' 就查不到了!怎么解决!!急!!
      

  11.   

    utf-8 的啊,现在更晕死了,直接一运行就下载页面!
      

  12.   

    搞掂啦!! 用$keyword=$_GET["tid"];
     $keyword = mb_convert_encoding($keyword, "UTF-8", "gb2312");
      

  13.   

    其实当你发现like的中文搜不出结果的时候,你可以试试英文,如果英文能,就肯定是编码了。这么简单的SQL,第一反应就应该是编码
      

  14.   

    没你想的这么简单啊现在如果用 <ifram > 标签把参数传过去,又乱码了!!怎么办??
      

  15.   

    杯具啊!现在直接在页面写  like '%公司%' 都读不出数据来了!
      

  16.   

      $typename = mb_convert_encoding($typename, "UTF-8", "gb2312");
       
       
       echo $typename;
      $sql_a="SELECT tid from esp_typelist where typename like '%".$typename."%' ";


      
      
      $rs=$this->db->fetch_first($sql_a);


    while ($rsList = $this->$db->fetch_array($rs))
    {
      echo "$i<br>";
      $arlst[] = $rsList;

       $i++;
    }

    print_r($arlst);




    //$tid=$arlst[0][tid];

    //echo $tid;

    exit();这么写都没用!!