数码资讯
添加更新标签ThinkPHP方法
本文阐述了添加更新标签thinkphp的方法。分享给你供你参考。具体分析如下: 我们知道,ThinkPHP案例博客的扩张,只是告诉我们如何添加标签,标签,方法没有删除和更新标签我的方法前彻底删除thinkphp3.1案例博客标签扩大的情况下的博客写了一个删除标记法,更新的方法会再写一个标签。 一般来
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文阐述了添加更新标签thinkphp的方法。分享给你供你参考。具体分析如下:
我们知道,ThinkPHP案例博客的扩张,只是告诉我们如何添加标签,标签,方法没有删除和更新标签我的方法前彻底删除thinkphp3.1案例博客标签扩大的情况下的博客写了一个删除标记法,更新的方法会再写一个标签。
一般来说,当我们写博客的时候,我们很少改变标签,但是如果我们改变标签来删除、添加和减少标签呢这无疑是造成think_tag和think_tagged两台垃圾信息的累积,好了,言归正传。
更新标签时,我们知道两个参数:
在oldtags美元:更新,在thinphp_tag表标签
当newstags美元:更新、插入thinphp_tag之前,形式提交标签
在更新文章时,标签可能会出现一些更改:
1、newstags美元美元和oldtags是相同的- >添加或减少或修改标签,标签号码和姓名及其原件。
2、newstags美元美元在同一oldtags,不修改标签
3、newstags美元美元和oldtags完全不同,添加或减少标签和标签数和原来完全不同的名字
对于2,我们可以通过比较筛选后删除或添加1和3的判断比较。
删除:可以删除标签名称已经存在thinphp_tag,当标签数= 1,它被删除,当数> 1减少1(count-1)。
添加:添加标记名。如果thinphp_tag表已经存在,然后计数(计数>1)+ 1在原有的基础上,即数+ 1。如果没有(计数= 0),然后添加新标签,计数+ 1。具体功能如下:
复制代码代码如下:公共功能updatetag($ VO,$模块){
recordid美元=装饰($ VO { 'id' });
如果($ VO { 'keywords} = =){ / /如果没有标签,原来的标签删除
美元-> Deltag($ recordid);
其他{ }
newtags美元=爆炸($ VO { 'keywords}); / /获取更新选项卡并为数组(关键词标签领域,在ThinkPHP博客标签开发案例,注)
{ } =条件'recordid美元的recordid美元; / /当多个标签,查询日志,而不是
标签= M('tagged美元);
标签= M('tag美元);
taggedlist美元=美元标记->在(条件)->选择();
如果(taggedlist美元!= false){
foreach(taggedlist美元美元美元关键=值){
tagid美元=装饰(价值'tagid{ });
tagvo美元=美元->在标签(ID =美元。tagid)->找到();
oldtags美元{ } = { $ tagvo 'name' }; / /得到原来的标签
}
结果=计数(array_diff美元(array_diff(newtags美元,美元oldtags),array_diff(oldtags美元,美元newtags))));
结果1美元=计数(array_diff(newtags美元,美元oldtags)); / /返回前和更新号码标签后的差异
2美元=计数(array_diff(oldtags美元,美元newtags)); / /返回前和更新号码标签后的差异
如果(($ 1!= = $ 2)| |($结果!= 0))与原来的{ 2相同的过滤器>
array_intersect美元= array_intersect(oldtags美元,美元; / / newtags)获得交换价值
oldtags_diff美元= array_diff(oldtags美元,美元array_intersect); / /原标签,已更新,删除无用的。
newtags_diff美元= array_diff(newtags美元,美元array_intersect); / /修改标签,你需要添加
/ /删除或count-1
如果(计数($ oldtags_diff)!= 0){
foreach(oldtags_diff美元美元的名字){
tagvo美元=美元->在标签(模块module'and美元=名称= $名)->找到();
$count = intval($ tagvo { count}); / /得到的标签数量
如果($ = 1){
标签>,(美元ID =美元。tagvo { 'id' })->删除();
$标记->哪里('tagid = '。$ tagvo { 'id' }。recordid ='。recordid美元)->删除();
} elseif(合计数> 1){
标签>,(美元ID =美元。tagvo { 'id' })-> setdec(count,1); / /标签数减1
$标记->哪里('tagid = '。$ tagvo { 'id' }。recordid ='。recordid美元)(->删除); / /删除相关数据标记
}
}
}
添加/更新标签
如果(计数($ newtags_diff)!= 0){
foreach($ newtags_diff达v){
美元=修剪(五美元);
如果(!emptyempty($ V)){
/标签已经存在记录
图'module} = { $ $模块;
合图{ 'name' } = $ V;
$标记标签>,= $($地图)->找到();
如果($塔格){ / /如果你保存相同的标签和标签之前的积累
tagid美元= $塔格{ 'id' };
标签->在美元(ID =。$塔格{id})-> setinc(count,1); / /统计计数加1(这个函数有三个参数,默认加1)
如果新的{其他}标签,+ 1标签
数组();
$ name= $ v;
$=1;
$模块= $模块;
$结果;
tagid美元美元=结果;
}
}
信息记录
数组();
$模块= $模块;
$ T {recordid} = $ / /保存recordid;消息ID
$ T {tagtime} =时间();
$ T {tagid} = $ / / tagid;保存标签ID
$标记>添加($ T);
}
}
}
}
}
}
使用方法:
复制代码代码如下:公共函数更新(){
$博客= D(博客);
$ $;
美元-> updatetag(合武,博客); / /更新之前打电话
如果(FALSE = $ VO){
美元->误差($博客-> geterror());
}
更新数据
美元=;
如果(假)!= $列表){
/ / print_r($列表);
美元->成功('editor成功!);
{人}
错误
美元->误差('edit失败!);
}
}
希望本文有助于基于ThinkPHP框架的PHP程序设计人。
我们知道,ThinkPHP案例博客的扩张,只是告诉我们如何添加标签,标签,方法没有删除和更新标签我的方法前彻底删除thinkphp3.1案例博客标签扩大的情况下的博客写了一个删除标记法,更新的方法会再写一个标签。
一般来说,当我们写博客的时候,我们很少改变标签,但是如果我们改变标签来删除、添加和减少标签呢这无疑是造成think_tag和think_tagged两台垃圾信息的累积,好了,言归正传。
更新标签时,我们知道两个参数:
在oldtags美元:更新,在thinphp_tag表标签
当newstags美元:更新、插入thinphp_tag之前,形式提交标签
在更新文章时,标签可能会出现一些更改:
1、newstags美元美元和oldtags是相同的- >添加或减少或修改标签,标签号码和姓名及其原件。
2、newstags美元美元在同一oldtags,不修改标签
3、newstags美元美元和oldtags完全不同,添加或减少标签和标签数和原来完全不同的名字
对于2,我们可以通过比较筛选后删除或添加1和3的判断比较。
删除:可以删除标签名称已经存在thinphp_tag,当标签数= 1,它被删除,当数> 1减少1(count-1)。
添加:添加标记名。如果thinphp_tag表已经存在,然后计数(计数>1)+ 1在原有的基础上,即数+ 1。如果没有(计数= 0),然后添加新标签,计数+ 1。具体功能如下:
复制代码代码如下:公共功能updatetag($ VO,$模块){
recordid美元=装饰($ VO { 'id' });
如果($ VO { 'keywords} = =){ / /如果没有标签,原来的标签删除
美元-> Deltag($ recordid);
其他{ }
newtags美元=爆炸($ VO { 'keywords}); / /获取更新选项卡并为数组(关键词标签领域,在ThinkPHP博客标签开发案例,注)
{ } =条件'recordid美元的recordid美元; / /当多个标签,查询日志,而不是
标签= M('tagged美元);
标签= M('tag美元);
taggedlist美元=美元标记->在(条件)->选择();
如果(taggedlist美元!= false){
foreach(taggedlist美元美元美元关键=值){
tagid美元=装饰(价值'tagid{ });
tagvo美元=美元->在标签(ID =美元。tagid)->找到();
oldtags美元{ } = { $ tagvo 'name' }; / /得到原来的标签
}
结果=计数(array_diff美元(array_diff(newtags美元,美元oldtags),array_diff(oldtags美元,美元newtags))));
结果1美元=计数(array_diff(newtags美元,美元oldtags)); / /返回前和更新号码标签后的差异
2美元=计数(array_diff(oldtags美元,美元newtags)); / /返回前和更新号码标签后的差异
如果(($ 1!= = $ 2)| |($结果!= 0))与原来的{ 2相同的过滤器>
array_intersect美元= array_intersect(oldtags美元,美元; / / newtags)获得交换价值
oldtags_diff美元= array_diff(oldtags美元,美元array_intersect); / /原标签,已更新,删除无用的。
newtags_diff美元= array_diff(newtags美元,美元array_intersect); / /修改标签,你需要添加
/ /删除或count-1
如果(计数($ oldtags_diff)!= 0){
foreach(oldtags_diff美元美元的名字){
tagvo美元=美元->在标签(模块module'and美元=名称= $名)->找到();
$count = intval($ tagvo { count}); / /得到的标签数量
如果($ = 1){
标签>,(美元ID =美元。tagvo { 'id' })->删除();
$标记->哪里('tagid = '。$ tagvo { 'id' }。recordid ='。recordid美元)->删除();
} elseif(合计数> 1){
标签>,(美元ID =美元。tagvo { 'id' })-> setdec(count,1); / /标签数减1
$标记->哪里('tagid = '。$ tagvo { 'id' }。recordid ='。recordid美元)(->删除); / /删除相关数据标记
}
}
}
添加/更新标签
如果(计数($ newtags_diff)!= 0){
foreach($ newtags_diff达v){
美元=修剪(五美元);
如果(!emptyempty($ V)){
/标签已经存在记录
图'module} = { $ $模块;
合图{ 'name' } = $ V;
$标记标签>,= $($地图)->找到();
如果($塔格){ / /如果你保存相同的标签和标签之前的积累
tagid美元= $塔格{ 'id' };
标签->在美元(ID =。$塔格{id})-> setinc(count,1); / /统计计数加1(这个函数有三个参数,默认加1)
如果新的{其他}标签,+ 1标签
数组();
$ name= $ v;
$=1;
$模块= $模块;
$结果;
tagid美元美元=结果;
}
}
信息记录
数组();
$模块= $模块;
$ T {recordid} = $ / /保存recordid;消息ID
$ T {tagtime} =时间();
$ T {tagid} = $ / / tagid;保存标签ID
$标记>添加($ T);
}
}
}
}
}
}
使用方法:
复制代码代码如下:公共函数更新(){
$博客= D(博客);
$ $;
美元-> updatetag(合武,博客); / /更新之前打电话
如果(FALSE = $ VO){
美元->误差($博客-> geterror());
}
更新数据
美元=;
如果(假)!= $列表){
/ / print_r($列表);
美元->成功('editor成功!);
{人}
错误
美元->误差('edit失败!);
}
}
希望本文有助于基于ThinkPHP框架的PHP程序设计人。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。