自己想着做了个站内搜索功能,具体代码是这样的:
$text = $_POST[text];// 文本框中传过来的值
$str = iconv("gbK","UTF-8//IGNORE",$text); ////将汉字做编码转换
$sql=mysql_query("SELECT * FROM tbl_product WHERE `pdtSN` or`pdtName`or`pdtOrigPrice`or`pdtPrice` or 'pdtOrigPrice' or 'pdtPrice' or 'pdtIsSpecial' or 'pdtColor' or 'pdtMaterial' or 'pdtLength' or 'pdtWidth' or 'pdtHigh' or 'pdtSuSN' or 'pdtSeSN' or 'pdtStSN' or 'pdtIsHot' like '%$str%' " );
<?php echo "<img src=\"$myrow[pdtPicture][0]\" width=\"280\" height=\"280\">"?>
我是想让那个查询为模糊查询,比如说输入中国,可以查找出来中国、中间国、中国人、这样的效果,以上是我自己想到的代码,在MYSQL中这段代码是没什么语法错误的,也能查找出相应的数据来,可是在PHP中这段代码就没查找结果了,但是代码本身是不报错的.......希望达人们能指点迷津,排忧解难,感激不尽!!!

解决方案 »

  1.   

    are U sure代码本身是不错的?$text = $_POST[text];// 文本框中传过来的值
    $str = iconv("gbK","UTF-8//IGNORE",$text); ////将汉字做编码转换
    $sql=mysql_query("SELECT * FROM tbl_product WHERE `pdtSN` or`pdtName`or`pdtOrigPrice`or`pdtPrice` or 'pdtOrigPrice' or 'pdtPrice' or 'pdtIsSpecial' or 'pdtColor' or 'pdtMaterial' or 'pdtLength' or 'pdtWidth' or 'pdtHigh' or 'pdtSuSN' or 'pdtSeSN' or 'pdtStSN' or 'pdtIsHot' like '%$str%' " );
    <?php echo "<img src=\"$myrow[pdtPicture][0]\" width=\"280\" height=\"280\">"?>最起码,在php大标签中不需要再套php标签了吧?检查你的值有没有取到。
    然后检查sql语句。如果都是正确的,没有理由执行结果不一样啊。$text = $_POST[text];// 文本框中传过来的值
    echo $text;
    mysql_query(set names 'utf8');
    $str = iconv("gbK","UTF-8//IGNORE",$text); //将汉字做编码转换
    $sql=mysql_query("SELECT * FROM tbl_product WHERE `pdtSN` or`pdtName`or`pdtOrigPrice`or`pdtPrice` or 'pdtOrigPrice' or 'pdtPrice' or 'pdtIsSpecial' or 'pdtColor' or 'pdtMaterial' or 'pdtLength' or 'pdtWidth' or 'pdtHigh' or 'pdtSuSN' or 'pdtSeSN' or 'pdtStSN' or 'pdtIsHot' like '%$str%' " );
    echo $sql;
    echo "<img src=\"$myrow[pdtPicture][0]\" width=\"280\" height=\"280\">";
      

  2.   

    你php文件内码是什么的?你网页的编码是什么的?你看看是否保持一致?
      

  3.   

    我那两段代码不是嵌套的PHP标签,是分开的,还有我将传过来的值打印输出也是正常的,可结果还是不理想......
      

  4.   

    网页编码是UTF-8的,是保持一致的....
      

  5.   


    传值正常,那sql语句打印出来正常么?还有,为什么要转码呢?数据库和文件各是什么编码。。