我的查询语句是:
mysql_query(set names utf8);
//如果数组的元素个数为1个,则按单个条件进行查询
if(count($newstr)==1){
$sql = select * from commodity where commodity_name like '%.$newstr[0].%' or sale_address like '%.$newstr[0].%'order by id desc ;
}
else{
//合并查询结果集
for($i=0;$i $sql0.= commodity_name like '%.trim($newstr[$i]).%'. or;
}
for($j=0;$j $sql1.= sale_address like '%.trim($newstr[$j]).%'. or;
}
$sql1=substr($sql1,0,-3); //去掉最后一个“or”
$sql=select * from commodity where.$sql0.$sql1. order by id desc;
}
require_once(common/db_mysql.class.php);
$db= new db_mysql;
//得到总记录数
$db->query($sql);
$row_count_sum = $db->get_rows();//返回结果集中记录的行数
//每页记录数,可以使用默认值或者直接指定值
$row_per_page = 6;
//总页数
$page_count = ceil($row_count_sum/$row_per_page);
//判断是否为第一页或者最后一页
$is_first = (1 == $page_num) ? 1 : 0;
$is_last = ($page_num == $page_count) ? 1 : 0;
//查询起始行位置
$start_row = ($page_num-1) * $row_per_page;
//为sql语句添加limit子句
$sql .= limit $start_row,$row_per_page;
//执行查询
$db->query($sql);
$res = $db->get_rows_array();//返回结果集记录组成的数组
//结果集行数
$rows_count=count($res);
for($i=0;$i $id=$res[$i]['id']; //id号
$title=$res[$i]['commodity_name']; //标题
$content = $res[$i]['sale_address']; //内容
echo $id.$title.**.$content.&&;
}
当我运行正常时结果是:62凤飞飞**多大&&61ssssss**ssss&&60哈哈哈**反反复复&&59嗯嗯嗯**嗯嗯嗯&&
但是偶尔会出现异常结果:62?**&&61ssssss**ssss&&60?**&&59?**?&&
我尝试着改浏览器的兼容性,有时候能恢复正常,有时候怎么改都没用,请问这是什么情况?在代码中能处理这种情况么
(以上代码有两个自定义函数,如果大家觉得有必要我再贴出来) 谢谢大家帮忙
------解决方案--------------------
php code#php页面开头加上header(content-type:text/html;charset:utf-8);
------解决方案--------------------
数据库是什么编码? php文件又是什么编码? 统一后一般都没有问题.
------解决方案--------------------
还有一个可能,你的编辑器有问题!你是不是从原来gb2312改成utf-8的
------解决方案--------------------
我有遇到过的,导出来,导进去(另外的框架),全是之类的,如果是自己重新添加,那么就全是正常的
