Smarty标签运算:

在页面上做简单的运算[temp5.html]

条件判断if

循环结构

for

foreach用得比较多,foreach例子从数据库取出的数据

section功能和foreach类似,没foreach好理解 不推荐用 while

<?php
/*
smarty html标签可以运算
if elseif else判断
for循环
foreach循环
*/
require('../../smarty3/libs/Smarty.class.php');
require('./mysmarty.class.php');
$smarty=new MySmarty(); // 运算
$age=18;
$smarty->assign('age',$age); // for循环
$start=1;
$end=100;
$smarty->assign('start',$start);
$smarty->assign('end',$end); // foreach循环
// 连接数据库
$conn=mysqli_connect('localhost','root','123456','boolshop');
//设置字符集
$sql ='set names utf8';
mysqli_query($conn,$sql);
$sql ='select * from goods limit 5';
$rs=mysqli_query($conn,$sql);
// 取出数组
$goods=array();
while($row=mysqli_fetch_assoc($rs)){
$goods[]=$row;
}
$smarty->assign('goods',$goods); $smarty->display('temp5.html'); ?>

temp5.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>temp5</title>
</head> <body>
<!-- 运算 -->
<h1>{$age}</h1>
<h1>{$age+60}</h1>
<h2>{if $age>18}</h2>
play play
<h2>{else if $age<}</h2>
还不能 play play
<h2>{else}</h2>
十八年如何勾勒才显得从容闲适
十八年尽心竭力但求随自己意志
{/if}
<br/> <!-- for循环
格式:for $i=数字或变量 to 数字或变量 step 隔几个 --> <!-- 1-100打印奇数,隔三个换行;
奇数可以用步长step 2就是间隔2,-》1 3 5
$i%3==0打印出第一行是1 3因为3是整除了,但不应该根据i,而是根据一共有几个数
$i@total = (end-start+1)/step 是打印的总个数
$i@iteration =每次增加至有多少个的变量
-->
{for $i=$start to $end step 2}
{$i}
{if $i@iteration%3==0}
<br/>
{/if}
{/for} <br/> {literal}
<!-- foreach 循环
格式:foreach $数组名 as $k=>$v[可以自己设定] 二维数组调用 $v.名-->
<!-- 1循环打印商品数组
2表格隔行换色<tr {if $v@iteration%2==1}bgcolor="blue"{/if}><td>{$v@iteration}</td>
3 first 只有第一行商品号背景色<tr {if $v@first}bgcolor="blue"{/if}>-->
{/literal} <table>
<tr><td>商品号</td><td>商品名</td><td>价格</td></tr> {foreach $goods as $k=>$v}
<tr {if $v@first}bgcolor="blue"{/if}><td>{$v@iteration}</td><td>{$v.goods_name}</td><td>{$v.shop_price}</td></tr>
{/foreach}
</table> <!-- section 循环,格式:name,loop字段必须
loop循环数组=$source
name属性代表每次循环的循环单元的临时变量
把$source每循环的单元赋于name 自定义的 字段 --> <table>
<tr><td>号</td><td>商品名</td><td>价格</td></tr> {section name=g loop=$goods}
<tr><td>{$goods[g].goods_id}</td><td>{$goods[g].goods_name}</td><td>{$goods[g].shop_price}</td></tr>
{/section}
</table>
<!-- $source一定是索引数组 每循环一次key给g,g当goods的那一轮的key --> <!-- while循环 -->
{while $age<}
{$age++}小于25
{/while} </body>
</html>

Smarty标签运算,控制结构[if,for,foreach,section,while]的更多相关文章

  1. Smarty标签 for运算

    $select="SELECT {$col_name} FROM woke_order where deleted=0 ".$where.$orderby ; // 取出数组 $r ...

  2. 如何处理JS与smarty标签的冲突

    smarty的默认标记符是大括号:{}, 假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号, smary引擎就会把这些大括号当作smarty语法来解释, 很明显,这些C ...

  3. 如何处理JS,css与smarty标签的冲突

    smarty的默认标记符是大括号:{}, 假如我们页面上有JS且定义了函数或者对象,或者有CSS定义了样式,就会出现大括号, smary引擎就会把这些大括号当作smarty语法来解释, 很明显,这些C ...

  4. Smarty数学运算

    数学运算可以直接应用到变量 Example 3-5. math examples 例 3-5.数学运算的例子   {$foo+1} {$foo*$bar} {* some more complicat ...

  5. Smarty中一些标签的使用

    Smarty中的标签和php中的标签不一样 foreach标签{foreach   from=$goods(变量名) key='键,不带$' item='值,不带$'}中间的显示内容{/foreach ...

  6. Smarty for foreach 使用

    {for} {for}{forelse}用于创建一个简单的循环. 下面的几种方式都是支持的: {for $var=$start to $end}步长1的简单循环. {for $var=$start t ...

  7. mybatis <where>、<set>、<trim>、<sql>、<foreach>标签的使用

    转:http://www.cnblogs.com/lixiujie/p/5766669.html <resultMap>标签的使用:这个类似于hibernte用于映射我们创建的vo对象与数 ...

  8. MyBatis foreach标签的用法

    From<MyBatis从入门到精通> 一.foreach实现in集合 1.映射文件中添加的代码: <!-- 4.4 foreach用法 SQL语句有时会使用IN关键字,例如id i ...

  9. jstl中的foreach标签

    <%@ page import="java.util.ArrayList" %><%@ page import="java.util.List" ...

随机推荐

  1. 【Python】使用torrentParser1.02对单文件torrent的分析结果

    C:\Users\horn1\Desktop\python\41-torrentParser>python torrentParser.py 文件名=./5.torrent 文件结构: anno ...

  2. php5.3升级脚本

    在lanmp/wdcp/wdOS的当前版本中,默认的php都是用到5.2.17的版本如需要升级到php5.3的,可使用如下脚本升级(注:此升级无安全漏洞等原因,只为某些追求高版本或应用需求需要高版本, ...

  3. Asp.Net 之 禁用TextBox的记忆功能

    IE提供了一个自动完成功能可以记忆我们的输入内容(如登录帐号等),方便下一次快速地录入类似资料.这确实是一个非常友好的功能,在操作时只需用鼠标双击文本框或输入前几个字符,系统会自动列出以前的录入历史供 ...

  4. Linux中最常用的JAVA_HOME配置

    一.配置 更改下面配置中的JAVA_HOME路径为你的路径. export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.144-0.b01.el7_ ...

  5. Linux Centos7中MySql安装

    (1)     安装Mysql5.7: 执行命令:rpm -ivh http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/mysql-co ...

  6. C# Directory.GetFiles()获取多个类型格式的文件

    第一种方式 System.IO.Directory.GetFiles()获取多个类型格式的文件 System.IO.Directory.GetFiles("c:\","( ...

  7. hive中简单介绍分区表(partition table)——动态分区(dynamic partition)、静态分区(static partition)

    一.基本概念 hive中分区表分为:范围分区.列表分区.hash分区.混合分区等. 分区列:分区列不是表中的一个实际的字段,而是一个或者多个伪列.翻译一下是:“在表的数据文件中实际上并不保存分区列的信 ...

  8. 算法笔记_216:第六届蓝桥杯软件类校赛部分真题(Java语言C组)

    目录 1 题目一 2 题目二 3 题目三 4 题目四 5 题目五 前言:以下代码仅供参考,若有错误欢迎指正哦~ 1 题目一 二项式的系数规律,我国数学家很早就发现了. 如[图1.png],我国南宋数学 ...

  9. Linux文件压缩、打包、备份

    1:Linux常见的压缩文件 2:gzip压缩指令 3:bzip2压缩指令(比gzip更高压缩比) 同理,可以用bzcat\bzmore\bzless读取被压缩后文件内容. 4:xz压缩指令(比bzi ...

  10. Java多线程中的内存模型

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6536131.html  一:现代计算机的高速缓存 在计算机组成原理中讲到,现代计算机为了匹配 计算机存储设备的 ...