Smarty中遇到的一个问题求解决

訫殇失命 2019-01-02 02:31:52
问题:数据库2个表,一个分类表Plate,一个链接表LinkNav。
在PHP页面查询分类表,赋值给html页面后,html页面foreach循环出分类,
然后怎么根据当前分类的ID查询出当前分类的链接。
这个涉及到两层foreach循环。单独用PHP能写出来。但用smarty就写不出来了。
PHP代码

/*查询板块信息*/
$PlateSql="select * from Plate";
$stm=$PDO->query($PlateSql);
$Plate=$stm->fetchAll(PDO::FETCH_ASSOC);
/*查询导航信息*/
$LinkSql="select * from LinkNav";
$stm=$PDO->query($LinkSql);
$Link=$stm->fetchAll(PDO::FETCH_ASSOC);
/*实例化Smarty*/
$Smarty=new Smarty();
/*传入板块信息数据*/
$Smarty->assign("Plate",$Plate);
/*传入导航信息数据*/
$Smarty->assign("Link",$Link);
$Smarty->display('daohang.html');

html代码

{foreach $Plate as $Pl}
<div class="daohang-buttom" id="daohang-buttom-{$Pl.id}">
<h1>{$Pl.PlateName}</h1>
<img src="templates/images/icon/xia.png" onClick="daohangss({$Pl.id})">
{foreach $Link as $Lk}
<div class="content">
<div class="daohang-lianjie" align="left" onClick="Newopen('{$Lk.LinkUrl}')">
<div class="daohang-logo">
<!--导航Logo-->
<img src="templates/images/daohang/{$Lk.LinkLogo}">
<span>{$Lk.LinkName}</span>
</div>
<div class="daohang-shuoming">
<p>{$Lk.LinkInfo}</p>
</div>
</div>
</div>
{/foreach}
</div>
{/foreach}
...全文
147 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Csdn技术大神 2019-01-03
  • 打赏
  • 举报
回复
很简单的测试一下有没有错误就可以了
訫殇失命 2019-01-02
  • 打赏
  • 举报
回复
引用 1 楼 下雨的声音丶 的回复:
复杂的我也不说的,你的条件我也猜不到 简单点 你第二次循环的时候 去判断 LinkNav 关联Plate表的ID 是不是等于第一层循环的ID 等于才输出。就是加一个if语句
是我想的太复杂了。。一句if一句成功解决! 未解决前 解决后

{foreach $Plate as $Pl}
					<div class="daohang-buttom" id="daohang-buttom-{$Pl.id}">
						<h1>{$Pl.PlateName}</h1>
						<img src="templates/images/icon/xia.png" onClick="daohangss({$Pl.id})">
						{foreach $Link as $Lk}
							<!--板块ID=导航ID时输出-->
							{if $Lk.Plate_id eq $Pl.id}
							<div class="content">
								<div class="daohang-lianjie" align="left" onClick="Newopen('{$Lk.LinkUrl}')">
									<div class="daohang-logo">
										<!--导航Logo-->
										<img src="templates/images/daohang/{$Lk.LinkLogo}">
										<span>{$Lk.LinkName}</span>				
									</div>
									<div class="daohang-shuoming">
										<p>{$Lk.LinkInfo}</p>
									</div>
								</div>
							</div>
							{/if}
						{/foreach}
					</div>
					{/foreach}
下雨的声音丶 2019-01-02
  • 打赏
  • 举报
回复
复杂的我也不说的,你的条件我也猜不到 简单点 你第二次循环的时候 去判断 LinkNav 关联Plate表的ID 是不是等于第一层循环的ID 等于才输出。就是加一个if语句

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧