织梦sql 语句查询条件中传入联动类型的动态参数为中文,而数据库中的字段为数字,直接传入动态参数显然不能查询到任何数据
思路:1.要么将查询条件的值变成中文 2.传入的动态参数为数字
思路 1 不知道
思路 2:
一、二次开发文档 /include/extend.func.php 将以下代码复制进去
/*用于 sql 语句调用时传入的联动类型的值的动态参数是数字*/ function GetAddField($aid,$addField){ global $dsql; $row = $dsql->GetOne("SELECT c.addtable FROM #@__archives AS a LEFT JOIN #@__channeltype AS c ON a.channel=c.id where a.id='$aid'");//查询出对应文章的模型 id $addtable = trim($row['addtable']); $row = $dsql->GetOne("SELECT $addField FROM `$addtable` WHERE aid=$aid"); return $row["$addField"]; }
二、需要调用的地方加入
{dede:php} $refObj->Fields['xq2'] = GetAddField($refObj->Fields['id'],xq); {/dede:php} {dede:sql sql="select * from dede_archives inner join dede_addon_al on dede_archives.id=dede_addon_al.aid where dede_addon_al.xq =~xq2~ }//放在 mysql 语句上 .... .... {/dede:sql} //赋值给 xq2(此处 xq 是原始字段 xq2 是赋值字段)
需要说明的是后台-系统基本参数-模板引擎禁用标签 将 PHP 删掉