|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
实现固定数量的几张图片的上传;再如调试软件ZendStudio的使用,看了很多次老师的应用,但总感觉用的不顺手,不懂那么多的数据值,到底哪一个才是真正的问题所在;还有如数据库语句的封装,我只会用简单的函数来进行封装。
这两天项目开辟中,需求完成一些对照适用的功效,用了两个利用的sql,总结一下,怕下次健忘了。
1. 检索数据库中跟提交的内容相婚配的内容
好比:提交的数据是“泅水”,那末数据库中有“我喜好泅水”字样的就算是婚配,然而如许一来,仍是不敷,好比我提交的是“周末去泅水”,数据库中有“泅水”的内容,其实意思相似,然而却利用like找不到的,因而想到上面的sql,已封装成函数了:
function getRelationTags($tagTitle,$cols="*")
{
$titleFeildStrLen = 24; //3*8 四个汉字或24个字符.
if ("" == $tagTitle) return false;
$sql = "select $cols from ".$TableName." where title != '' and (LOCATE(title,'$tagTitle') or ((issystem = 1 or LENGTH(title) <= $titleFeildStrLen) and title like '%".$tagTitle."%' )) order by LENGTH(title) ";
$data =& $db->getAll($sql);
if(DB::isError($data)){
return $this->returnValue($data->getMessage());
}else{
return $data;
}
}
看sql:
select $cols from ".$TableName." where title != '' and (LOCATE(title,'$tagTitle') or ((issystem = 1 or LENGTH(title) <= $titleFeildStrLen) and title like '%".$tagTitle."%' )) order by LENGTH(title)
其实就是两次婚配,一次是正向婚配,就是把提交的标签跟数据库中标签停止婚配,第二次是把数据库中的标签跟提交的标签停止婚配。
关头在LOCATE()函数,同时也限制了长度,由于mysql中的编码是:
set names 'utf8'
就是是utf8的,那末一个汉字要占用3个字节,字符只占用1个字节,所以下面的:
$titleFeildStrLen = 24;
就是8个汉字和24个字符局限那的标签停止婚配。
2. 同类排序
数据库中好比是如许的内容:
北京 1023 1
天津 2301 1
上海 3450 1
天津 4520 1
北京 3902 1
那末我要提取一切的城市数据,而且把每种城市数据的总数跟其余城市总数停止对照后排序。
函数代码以下:
function getMostCity($num)
{
$sql = "select count(id) as num,city from ".$TableName." where city != '' group by city order by num desc limit 0,$num;";
$data =& $db->getAll($sql);
if($db->isError($data))
return false;
else
return $data;
}
咱们存眷一下下面的sql语句:
select count(id) as num,city from ".$TableName." where city != '' group by city order by num desc limit 0,$num
中心就是 group by city 把相似城阛阓中起来后依照多到少排序。
Author: heiyeluren
writeTime: 2005-07-01 14:35
刚开始觉得自己对这些多少有些基础,很简单,但是看了老师那么熟练的进行网页布局的时候,突然之间发现,其实,我的基础并没有自己想像的那么好,自己设计的页面其实并不好看,就连表格的边框为1像素都不会弄。 |
|