samrty  分页   查询后分页

0505fch.php

 <?php
include("init.inc.php");
include("DBDA.php");
include("fpage.class.php"); $cx="";
$yuju="";
$name="";
if (empty($_POST["name"])) {
if (!empty($_GET["name"])) {
$name=$_GET["name"];
$yuju="where AreaName like '%{$name}%' ";
}
}
else
{
$name=$_POST["name"];
$cx="name={$name}";
$yuju="where AreaName like '%{$name}%' ";
}
$smarty->assign("name",$name); $db=new DBDA();
$sqlall="select count(*) from ChinaStates ".$yuju; $total=$db->StrQuery($sqlall,1,"test2"); $page=new Page($total,10,$cx,true);
//true 从第一页开始显示 第三个"" 是做查询用的 $sql="select * from chinastates ".$yuju.$page->limit;
$attr=$db->Query($sql,1,"test2"); $fp=$page->fpage(); $smarty->assign("shuju",$attr);
$smarty->assign("fp",$fp); $smarty->display("0505fch.html");
?>

0505fch.html   在模板 templates 中

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>主页面</h1> <table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td>代号</td>
<td>姓名</td>
<td>生日</td>
</tr>
<{foreach $shuju as $sj}>
<tr>
<td><{$sj[0]}></td>
<td><{$sj[1]}></td>
<td><{$sj[4]}></td>
</tr>
<{/foreach}>
</table> </body>
</html>

DBDA.php

 <?php

 class DBDA
{
public $host = "localhost"; //服务器地址
public $uid = "root"; //数据库的用户名
public $pwd = "123"; //数据库的密码 //执行SQL语句,返回相应结果的函数
//$sql是要执行的SQL语句
//$type是SQL语句的类型,0代表增删改,1代表查询
//$db代表要操作的数据库
public function Query($sql,$type,$db)
{
//造连接对象
$conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); //判断连接是否成功
!mysqli_connect_error() or die("连接失败!"); //执行SQL语句
$result = $conn->query($sql); //判断SQL语句类型
if($type==1)
{
//如果是查询语句返回结果集的二维数组
return $result->fetch_all();
}
else
{
//如果是其他语句,返回true或false
return $result;
}
} //Ajax调用返回JSON
public function JsonQuery($sql,$type=1,$db="test2")
{
//定义数据源
$dsn = "mysql:dbname={$db};host={$this->host}";
//造pdo对象
$pdo = new PDO($dsn,"{$this->uid}","{$this->pwd}"); //准备执行SQL语句
$st = $pdo->prepare($sql); //执行预处理语句
if($st->execute())
{
if($type==1)
{
$attr = $st->fetchAll(PDO::FETCH_ASSOC);
return json_encode($attr);
}
else
{
if($st)
{
return "OK";
}
else
{
return "NO";
}
} }
else
{
echo "执行失败!";
} }
//Ajax调用返回字符串
public function StrQuery($sql,$type,$db)
{
//造连接对象
$conn = new MySQLi($this->host,$this->uid,$this->pwd,$db); //判断连接是否成功
!mysqli_connect_error() or die("连接失败!"); //执行SQL语句
$result = $conn->query($sql); //判断SQL语句类型
if($type==1)
{
$attr = $result->fetch_all();
$str = "";
//如果是查询语句返回字符串
for($i=0;$i<count($attr);$i++)
{
for($j=0;$j<count($attr[$i]);$j++)
{
$str = $str.$attr[$i][$j];
$str = $str."^";
}
$str = substr($str,0,strlen($str)-1);
$str = $str."|";
}
$str = substr($str,0,strlen($str)-1); return $str;
}
else
{
//如果是其他语句,返回true或false
if($result)
{
return "OK";
}
else
{
return "NO";
}
}
} }

init.inc.php

 <?php

 define("ROOT",str_replace("\\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录

 //echo str_replace("\\","/",dirname(__FILE__))."/";

 require ROOT.'libs/Smarty.class.php'; //加载Smarty类文件

 $smarty = new Smarty(); //实例化Smarty对象<br>

 //$smarty -> auto_literal = false; //就可以让定界符号使用空格
$smarty->setTemplateDir(ROOT.'templates/'); //设置所有模板文件存放位置
//$smarty->addTemplateDir(ROOT.'templates2/'); //添加一个模板文件夹
$smarty->setCompileDir(ROOT.'templates_c/'); //设置编译过的模板存放的目录 $smarty->addPluginsDir(ROOT.'plugins/'); //设置为模板扩充插件存放目录
$smarty->setCacheDir(ROOT.'cache/'); //设置缓存文件存放目录
$smarty->setConfigDir(ROOT.'configs/'); //设置模板配置文件存放目录 $smarty->caching = false; //设置Smarty缓存开关功能
$smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天
$smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
$smarty->right_delimiter = '}>'; //设置模板语言中的右结束符 ?>

显示效果:

1,进入主页初始化

2,输入查询条件

3,显示查询结果

缓存

huancun.php

 <?php

 define("ROOT",str_replace("\\","/",dirname(__FILE__)).'/'); //常量ROOT中指定项目根目录

 //echo str_replace("\\","/",dirname(__FILE__))."/";

 require ROOT.'libs/Smarty.class.php'; //加载Smarty类文件

 $smarty = new Smarty(); //实例化Smarty对象<br>

 //$smarty -> auto_literal = false; //就可以让定界符号使用空格
$smarty->setTemplateDir(ROOT.'templates/'); //设置所有模板文件存放位置
//$smarty->addTemplateDir(ROOT.'templates2/'); //添加一个模板文件夹
$smarty->setCompileDir(ROOT.'templates_c/'); //设置编译过的模板存放的目录 $smarty->addPluginsDir(ROOT.'plugins/'); //设置为模板扩充插件存放目录
$smarty->setCacheDir(ROOT.'cache/'); //设置缓存文件存放目录
$smarty->setConfigDir(ROOT.'configs/'); //设置模板配置文件存放目录 $smarty->caching = false; //设置Smarty缓存开关功能
$smarty->cache_lifetime = 60*60*24; //设置缓存模板有效时间一天
$smarty->left_delimiter = '<{'; //设置模板语言中的左结束符
$smarty->right_delimiter = '}>'; //设置模板语言中的右结束符 ?>

huancun.html  在templates模板文件夹中

 <?php
include("init.inc.php");
//缓存
$file="./cache/newhuncun.html";
//当前页面对应的缓存页面
$cachetime=10;//定义缓存时间
if (!file_exists($file)||(filemtime($file)+$cachetime<time()))
//缓存文件创建时间加缓存时间 小于当前时间
{
ob_start();//开启内存
include("DBDA.php");
$db=new DBDA();
$sql="select * from Info";
$attr=$db->Query($sql,1,"test2");
$smarty->assign("shuju",$attr);
$smarty->display("huancun.html");
$neirong=ob_get_contents();
//从内存中获取内容
file_put_contents($file,$neirong);
//写入文件 ob_flush();//关闭内存
echo "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@";
}
else
{
include("$file");
} ?>

1,当第一次出现时 没有缓存文件  下面会显示 @@@@@@@@@@@ 行

2,当cache 缓存文件中有缓存文件后   不再显示  @@@@@@@@@行

2016/05/05 smarty ①分页 ② 查询后分页 ③缓存的更多相关文章

  1. MySQL、SqlServer、Oracle三大主流数据库分页查询 (MySQL分页不能用top,因为不支持)

    一. MySQL 数据库 分页查询MySQL数据库实现分页比较简单,提供了 LIMIT函数.一般只需要直接写到sql语句后面就行了.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它 ...

  2. Elasticsearch from/size-浅分页查询-深分页 scroll-深分页search_after深度查询区别使用及应用场景

    Elasticsearch调研深度查询 1.from/size 浅分页查询 一般的分页需求我们可以使用from和size的方式实现,但是这种的分页方式在深分页的场景下应该是避免使用的.深分页的页次增加 ...

  3. 分页查询和分页缓存查询,List<Map<String, Object>>遍历和Map遍历

    分页查询 String sql = "返回所有符合条件记录的待分页SQL语句"; int start = (page - 1) * limit + 1; int end = pag ...

  4. 【Django+Element UI】使用一个接口文件,搞定分页获取数据,模糊查询后分页获取数据

    1:序列化获取数据的接口设计 1:分页获取序列化数据 2:是个能传参数的接口 class Society(APIView): def post(self, request): keywords = s ...

  5. 【spring data jpa】带有条件的查询后分页和不带条件查询后分页实现

    一.不带有动态条件的查询 分页的实现 实例代码: controller:返回的是Page<>对象 @Controller @RequestMapping(value = "/eg ...

  6. Java项目之查询后分页

    一.Jsp页面: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

  7. php的分页查询建立分页类

    创建一个分页类 <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 priv ...

  8. Sqlite 数据库分页查询(ListView分页显示数据)

    下面介绍一下我的这个demo. 流程简述: 我在raw文件夹下面放了名称为city的数据库,里面包含全国2330个城市,以及所属省,拼音简写等信息. 首先 在进入MainActivity的时候,创建数 ...

  9. webform组合查询和分页

    1.组合查询(1)数据访问类 //参数1:SQL语句 参数2:哈希表public List<Users> chas(string s,Hashtable has) { List<Us ...

随机推荐

  1. 条款18:让接口容易被正确使用,不易被误用(Make interface easy to use correctly and hard to use incorrectly)

    NOTE : 1.好的接口容易被正确使用,不容易被误用.应该让所有接口努力达成这些性质. 2.“促进正确使用”的办法包括接口的一致性,以及内置类型的行为兼容. 3.“阻止误用”的办法包括建立新类型/限 ...

  2. Django框架基础知识06-模型基础

    1.数据库的连接配置 django 连接mysql的配置流程: 安装 pymysql pip install pymysql 创建数据库用户 有创建数据库权限的用户 创建数据库 crm 修改配置 se ...

  3. 【HDU 6006】Engineer Assignment(状压DP)

    Problem Description In Google, there are many experts of different areas. For example, MapReduce exp ...

  4. luogu2468 [SDOI2010]粟粟的书架

    二合一-- #include <iostream> #include <cstdio> using namespace std; int r, c, m, a[205][205 ...

  5. luogu1447 [NOI2010]能量采集

    考虑暴力,答案显然是 \(\sum_{i=1}^n\sum_{j=1}^m(2(\gcd(i,j)-1)+1)=\sum_{i=1}^n\sum_{j=1}^m(2\gcd(i,j)-1)\). 考虑 ...

  6. 如何安装python包

    安装python包有两种方法: 使用Python包管理器pip工具 在Linux系统中,首先 yum install python-pip 然后就可以欢快的pip install *** 啦 源代码安 ...

  7. java常见问题集锦

    Eclipse 编译错误 Access restriction:The type *** is not accessible due to restriction on... 解决方案 Eclipse ...

  8. String painter(区间DP)

    There are two strings A and B with equal length. Both strings are made up of lower case letters. Now ...

  9. [BZOJ4052][Cerc2013]Magical GCD

    [BZOJ4052][Cerc2013]Magical GCD 试题描述 给出一个长度在 100 000 以内的正整数序列,大小不超过 10^12.  求一个连续子序列,使得在所有的连续子序列中,它们 ...

  10. 【二分图匹配】E. 过山车

    https://www.bnuoj.com/v3/contest_show.php?cid=9154#problem/E [题意] 裸的最大匹配 [教训] 一开始边数开了k,建的是无向图,结果T了,改 ...