热搜:NVER node 开发 php

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

2024-08-11 21:45:01
PHPCMS全站搜索中的致命问题 此问题是phpcms论坛多年来一直没有解决的问题,难!

那就是不显示,但是能搜到,比如全站搜索时,除专题外的别的内容是能搜到的,但是搜专题却发现有显示条数,但是没有结果显示,如图

我想可能是没有搜到字段吧,因为别的栏目怎么显示内容呢,而偏偏专题不显示,但不显示内容可是却找到了,所以我认为是字段了出了问题,
那么如何改造呢,下面是代码
   这个问题是PHPCMS一直没有解决的问题,可以说是老大难的问题,并且是多年了,N年前就有人问,N年后还是没有解决,可见中国的PHP水平哈,当然不算我,因为我是菜鸟,哈!

{template "content","header"}<?php if(!isset($CATEGORYS)) { $CATEGORYS = getcache('category_content_'.$siteid,'commons'); } ?><?php $TYPE = getcache('type_content','commons');?>	                           当前位置:首页 » {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']}
{/if}
{$r[description]} [查看]
{$r[url]}
{/loop} {if empty($data)}未找到结果{/if}

资讯中心

{pc:content action="lists" catid="21" thumb="" order="id DESC" num="20" return="datad" }
    {loop $datad $n $vv}
  • {$vv['title']}
  • {/loop}
{/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']}
{/if}
{$r[description]} [查看]
{$r[url]}
{/loop} {if empty($data)}未找到结果{/if}

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


回复讨论(解决方案)

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

<?php $keywords=$_GET['keywords'];?>{pc:get sql="Select * from `news` where `title` like '%$keywords%'" num='20'}{print_r($data)}{/pc}

你可以试试。。

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

<?php $keywords=$_GET['keywords'];?>{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标签就行了

<?php $keywords=$_GET['keywords'];?>{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标签就行了

<?php $keywords=$_GET['keywords'];?>{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标签就行了

<?php $keywords=$_GET['keywords'];?>{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标签就行了

<?php $keywords=$_GET['keywords'];?>{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']"}