欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

PHPCMS全站搜索中的致命问题 此问题是phpcms论坛多年来一直没有解决的问题,难!

程序员文章站 2022-06-03 18:02:16
...
那就是不显示,但是能搜到,比如全站搜索时,除专题外的别的内容是能搜到的,但是搜专题却发现有显示条数,但是没有结果显示,如图

我想可能是没有搜到字段吧,因为别的栏目怎么显示内容呢,而偏偏专题不显示,但不显示内容可是却找到了,所以我认为是字段了出了问题,
那么如何改造呢,下面是代码
这个问题是PHPCMS一直没有解决的问题,可以说是老大难的问题,并且是多年了,N年前就有人问,N年后还是没有解决,可见中国的PHP水平哈,当然不算我,因为我是菜鸟,哈!
{template "content","header"}
当前位置:首页 » {catpos($catid)}全站搜索 >
{php if($totalnums==0)showmessage(L('没有查到内容,请再试!谢谢!'), APP_PATH);}
获得约 {$totalnums} 条结果 (用时{sprintf("%01.2f", $execute_time)} 秒)
{loop $data $i $r}
[{$CATEGORYS[$r[catid]][catname]}] {$r[title]}[{format::date($r[inputtime], 1)}]
{if $r['thumb']}
PHPCMS全站搜索中的致命问题 此问题是phpcms论坛多年来一直没有解决的问题,难!
{/if}
{$r[description]} [查看]
{$r[url]}PHPCMS全站搜索中的致命问题 此问题是phpcms论坛多年来一直没有解决的问题,难!
{/loop} {if empty($data)}未找到结果{/if}

资讯中心

{pc:content action="lists" catid="21" thumb="" order="id DESC" num="20" return="datad" }{/pc}

随机文章

    {php $datav = suiji(1,0,1,0,15)} {loop $data $r}
  • {$r['title']}
  • {/loop}
{/pc}
{if $setting['suggestenable']}{/if}{template "content","footer"}

再下面是html模板中的代码
{loop $data $i $r}
[{$CATEGORYS[$r[catid]][catname]}] {$r[title]}[{format::date($r[inputtime], 1)}]
{if $r['thumb']}
PHPCMS全站搜索中的致命问题 此问题是phpcms论坛多年来一直没有解决的问题,难!
{/if}
{$r[description]} [查看]
{$r[url]}PHPCMS全站搜索中的致命问题 此问题是phpcms论坛多年来一直没有解决的问题,难!
{/loop} {if empty($data)}未找到结果{/if}

也许有人会说,是不是return=data有冲突,放心吧,没这回事,我把头都去掉了,也改了data的名称了,试了N次了,还是一样,所以这种可能不会有的


回复讨论(解决方案)

没读到字段而已,这不难解决吧。实在不行,搜索部分不走控制器自己写个PC标签就行了

{pc:get sql="Select * from `news` where `title` like '%$keywords%'" num='20'}{print_r($data)}{/pc}

你可以试试。。

没读到字段而已,这不难解决吧。实在不行,搜索部分不走控制器自己写个PC标签就行了

{pc:get sql="Select * from `news` where `title` like '%$keywords%'" num='20'}{print_r($data)}{/pc}

你可以试试。。
这个办法确实不错,不过有一个问题我又麻爪了
因为这里要写判断的,是两个分枝
{if(是专题)}.....................{else}...........
让我麻爪的地方是,执行结果中有loop循环,这样的句子如何写呢
比如我这样写
{if(是专题)}{loop $data $i $r}{/loop}
{else}{loop $data $i $r}{/loop}
我试了一下,显然是不行的,出现的问题是if执行的loop循环也是有大括号的
那么问题来了,到底应该怎么写呢

没读到字段而已,这不难解决吧。实在不行,搜索部分不走控制器自己写个PC标签就行了

{pc:get sql="Select * from `news` where `title` like '%$keywords%'" num='20'}{print_r($data)}{/pc}

你可以试试。。
如果这样写{if $tid==90}{loop $data $i $r}111{/loop}{/if}会有下面的错误提示,供你参考

Parse error: syntax error, unexpected '}', expecting ')' in D:\wwwroot\jtx127\wwwroot\caches\caches_template\jnhd\search\list.php on line 17


没读到字段而已,这不难解决吧。实在不行,搜索部分不走控制器自己写个PC标签就行了

{pc:get sql="Select * from `news` where `title` like '%$keywords%'" num='20'}{print_r($data)}{/pc}

你可以试试。。
如果这样写{if $tid==90}{loop $data $i $r}111{/loop}{/if}会有下面的错误提示,供你参考

Parse error: syntax error, unexpected '}', expecting ')' in D:\wwwroot\jtx127\wwwroot\caches\caches_template\jnhd\search\list.php on line 17

print_r($data)数据可以正常显示吗?



没读到字段而已,这不难解决吧。实在不行,搜索部分不走控制器自己写个PC标签就行了

{pc:get sql="Select * from `news` where `title` like '%$keywords%'" num='20'}{print_r($data)}{/pc}

你可以试试。。
如果这样写{if $tid==90}{loop $data $i $r}111{/loop}{/if}会有下面的错误提示,供你参考

Parse error: syntax error, unexpected '}', expecting ')' in D:\wwwroot\jtx127\wwwroot\caches\caches_template\jnhd\search\list.php on line 17

print_r($data)数据可以正常显示吗?
解决了,按你的方法做就行,是我多想了,画蛇添足了,哈,给你加分,这是你应该得的,多谢!




没读到字段而已,这不难解决吧。实在不行,搜索部分不走控制器自己写个PC标签就行了

{pc:get sql="Select * from `news` where `title` like '%$keywords%'" num='20'}{print_r($data)}{/pc}

你可以试试。。
如果这样写{if $tid==90}{loop $data $i $r}111{/loop}{/if}会有下面的错误提示,供你参考

Parse error: syntax error, unexpected '}', expecting ')' in D:\wwwroot\jtx127\wwwroot\caches\caches_template\jnhd\search\list.php on line 17

print_r($data)数据可以正常显示吗?
解决了,按你的方法做就行,是我多想了,画蛇添足了,哈,给你加分,这是你应该得的,多谢!

多谢你的分,三年没来论坛玩了,不是因为下载把分花完了也不会跑过来。{$pages} 依然可以输出分页,需要在{pc}标签上附加一个page属性,比如{pc:get sql="Select * from `news` where `title` like '%$keywords%'" num='20' page="$_GET['page']"}