帝国CMS 7.0引入了多值字段,这个功能还是非常的强大,如果你有此需求应该知道如何运用,如果你需要调用多值字段也非常简单,但如果你要对多值字段里的某一项进行搜索,那可就有点难了,不过这还是难倒不到强大的帝国爱好者,有网友分享了此方法。
7.0引入多值字段,多值字段搜索问题很麻烦,详见:http://bbs.phome.net/ShowThread/?threadid=280289&forumid=42,
艰难的多值字段的模糊查询问题 ,详见:http://bbs.phome.net/ShowThread/?threadid=280305&forumid=42,没有找到解决方案
经过重新规划,初步解决,大家看还一否有更好方案:
我建立一个书籍管理模型,作者管理模型,考虑到书籍的作者可能有多个与重名问题,书籍作者采取多值字段,作者id相关联,但在查询时出现了一些问题,解决方案如下:
1、建立后台增加信息处理函数,使数据成为||||||1||||||,||||||1||||||2||||||之类形式,也就是说,使其前后都有分隔符:
1 2 3 4 |
function user_Addauthorid($mid,$f,$isadd,$isq,$value,$cs){ $value='||||||'.$value.'||||||'; return $value; } |
2、根据作者id查询其所编写书籍,并输出书籍名称及其链接:
1 2 3 4 5 6 7 |
<? $sqlts=$empire->query("select id,classid,title,smalltext from cbs_ecms_books where authorid like '%|$authorid|%'" ); while($ts=$empire->fetch($sqlts)) { echo("<a href=[!--news.url--]infoshow-".$ts[classid]."-".$ts[id]."-0.html>".$ts[title]."</a> "); } ?> |
3、处理书籍作者多值字段authorid,查询作者管理模型,并输出作者姓名及其链接:
1 2 3 4 5 6 7 8 9 10 11 12 |
<? if($navinfor[authorid]!=""){ $authorid=explode("||||||",$navinfor[authorid]); foreach ($authorid as $value) { if($value!=""){ $zz=$empire->fetch1("select classid,title,smalltext from cbs_ecms_author where id =$value"); echo("<a href=[!--news.url--]infoshow-$zz[classid]-".$value."-0.html>".$zz[title]."</a> "); } } } ?> |
转载请注明:网页阁吧 » 关于帝国7.0多值字段搜索问题的处理方案