smarty模板调数据库并做添加删除修改和分页

Posted 黄力军

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了smarty模板调数据库并做添加删除修改和分页相关的知识,希望对你有一定的参考价值。

smarty模板只要就是实现分离效果所以每个功能都需要两个页面一个是html  和 php  两部分组成

使用smarty模板要在main文件夹下面创建login.php文本,要用smarty模板首先引入入口文件, 

<?php
include("../init.inc.php");
//引入入口文件
//var_dump($smarty);//
$smarty->display("login.html");//用来在模板显示用户看到的内容

登录页面在smarty模板里的templates文件夹下创建要在模板里显示的HTML类型登录页面login.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>登录页面</title>
	</head>
	<body>
		<hi>登录页面</hi>
		<form action="logincl.php" method="post"><!--form表单action要做的处理页面-->
			<div>用户名:<input type="text" name="uid" /></div>
			<div>密码:<input  type="password" name="pwd"/></div>
			<input type="submit" value="登录" />
		</form>
	</body>
</html>

登录的处理页面

<?php
include("../DBDA.php");
$db = new DBDA();

$uid = $_POST["uid"];
$pwd = $_POST["pwd"];

$sql = "select pwd from users where uid=\'{$uid}\'";
$mm = $db->StrQuery($sql);//返回字符串   里面是查到的密码

if($mm==$pwd && !empty($pwd))//如果查到的密码等于用户给的并且用户给的不为空
{
	header("location:main.php");//如果登录成功跳转到主页面
}


?>

 登录做完要做主页面要让主页面显示要查询数据库里的内容显示出来main.php

<?php
include("../init.inc.php");
include("../DBDA.php");

$db = new DBDA();

$sql = "select * from nation";//找数据库里nation表里的所有数据
$arr = $db->Query($sql);//返回二维数组     现在$arr里有查到的所有数据

$smarty->assign("shuju", $arr);//把查到的所有数据arr放到smarty模板里
$smarty->display("main.html");//调用display方法 显示模板文件

 在做main.php的main.html页面

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>主页面把main.php里的内容拿过来用</title>
	</head>
	<body>
		<h1>主页面</h1>
		<table width="100%" border="1" cellpadding="0" cellspacing="0">
			<tr>
				<td>代号</td>
				<td>名称</td>
				<td>操作</td>
				<td>操作</td>
				<td>操作</td>
			</tr>
			<{foreach $shuju as $v}><!--$v代表遍历出来的小数组-->
			<tr>
				<td><{$v[0]}></td><!--代号-->
				<td><{$v[1]}></td><!--名称-->
				<td><a href="shanchu.php?code=<{$v[0]}>">删除</a></td>
				
				<td><a href="xiugai.php?code=<{$v[0]}>">修改</a>	</td>
				
				<td><a href="tianjia.php?code=<{$v[0]}>">添加</a></td>
			</tr>
			<{/foreach}>
				
		</table>
	</body>
</html>

 

在做修改xiugai.php

<?php
include("../init.inc.php");
include("../DBDA.php");

$db = new DBDA();

$code = $_GET["code"];//根据传过来的主键值
$sql = "select * from nation where code=\'{$code}\'";
$arr = $db->Query($sql);

$smarty->assign("nation",$arr[0]);//取到民族  一维数组
$smarty->display("xiugai.html");//用display方法显示模板文件
?>

 做xiugai.php的显示文件xiugai.html

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>主页面把main.php里的内容拿过来用</title>
	</head>
	<body>
		<h1>主页面</h1>
		<table width="100%" border="1" cellpadding="0" cellspacing="0">
			<tr>
				<td>代号</td>
				<td>名称</td>
				<td>操作</td>
				<td>操作</td>
				<td>操作</td>
			</tr>
			<{foreach $shuju as $v}><!--$v代表遍历出来的小数组-->
			<tr>
				<td><{$v[0]}></td><!--代号-->
				<td><{$v[1]}></td><!--名称-->
				<td><a href="shanchu.php?code=<{$v[0]}>">删除</a></td>
				
				<td><a href="xiugai.php?code=<{$v[0]}>">修改</a>	</td>
				
				<td><a href="tianjia.php?code=<{$v[0]}>">添加</a></td>
			</tr>
			<{/foreach}>
				
		</table>
	</body>
</html>

 

做分页

main.php里面加分页信息

<?php
include("../init.inc.php");
include("../DBDA.php");

$db = new DBDA();

//1.分也需要所有的数据总条数
$sall = "select count(*) from nation";
$zts = $db->StrQuery($sall);//方法执行会等于总条数

include("../page.class.php");//分页的类文件
$page = new page($zts,3);//2.每页显示3条

//分页里的成员变量$page->limit
$sql = "select * from nation ".$page->limit;//找数据库里nation表里的所有数据
$arr = $db->Query($sql);//返回二维数组     现在$arr里有查到的所有数据

$smarty->assign("fenye",$page->fpage());//分页信息注册到模板里

$smarty->assign("shuju", $arr);//把查到的所有数据arr放到smarty模板里
$smarty->display("main.html");//调用display方法 显示模板文件

 main.html里显示分页

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>主页面把main.php里的内容拿过来用</title>
	</head>
	<body>
		<h1>主页面</h1>
		<table width="100%" border="1" cellpadding="0" cellspacing="0">
			<tr>
				<td>代号</td>
				<td>名称</td>
				<td>操作</td>
				<td>操作</td>
				<td>操作</td>
			</tr>
			<{foreach $shuju as $v}><!--$v代表遍历出来的小数组-->
			<tr>
				<td><{$v[0]}></td><!--代号-->
				<td><{$v[1]}></td><!--名称-->
				<td><a href="shanchu.php?code=<{$v[0]}>">删除</a></td>
				
				<td><a href="xiugai.php?code=<{$v[0]}>">修改</a>	</td>
				
				<td><a href="tianjia.php?code=<{$v[0]}>">添加</a></td>
			</tr>
			<{/foreach}>
				
		</table>
		<div><{$fenye}></div><!--显示分页-->
	</body>
</html>

 

添加查询条件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>主页面把main.php里的内容拿过来用</title>
	</head>
	<body>
		<h1>主页面</h1>
		<form action="main.php" method="get"><!--条件查询-->
			<div>名称:
				<input type="text" name="name" />
				<input type="submit" value="查询" />
			</div>
		</form>
		
		<table width="100%" border="1" cellpadding="0" cellspacing="0">
			<tr>
				<td>代号</td>
				<td>名称</td>
				<td>操作</td>
				<td>操作</td>
				<td>操作</td>
			</tr>
			<{foreach $shuju as $v}><!--$v代表遍历出来的小数组-->
			<tr>
				<td><{$v[0]}></td><!--代号-->
				<td><{$v[1]}></td><!--名称-->
				<td><a href="shanchu.php?code=<{$v[0]}>">删除</a></td>
				
				<td><a href="xiugai.php?code=<{$v[0]}>">修改</a>	</td>
				
				<td><a href="tianjia.php?code=<{$v[0]}>">添加</a></td>
			</tr>
			<{/foreach}>
				
		</table>
		<div><{$fenye}></div><!--显示分页-->
	</body>
</html>

 

main.php

 

<?php
include("../init.inc.php");
include("../DBDA.php");
$db = new DBDA();

//条件查询
$tj = " 1=1 ";
if(!empty($_GET["name"]))
{
	$n = $_GET["name"];
	$tj = " name like \'%{$n}%\' ";
}


$ztj = " where {$tj}";//条数
//1.分也需要所有的数据总条数
$sall = "select count(*) from nation".$ztj;
$zts = $db->StrQuery($sall);//方法执行会等于总条数

include("../page.class.php");//分页的类文件
$page = new page($zts,3);//2.每页显示3条

//分页里的成员变量$page->limit
$sql = "select * from nation ".$ztj.$page->limit;//找数据库里nation表里的所有数据
$arr = $db->Query($sql);//返回二维数组     现在$arr里有查到的所有数据

$smarty->assign("fenye",$page->fpage());//分页信息注册到模板里

$smarty->assign("shuju", $arr);//把查到的所有数据arr放到smarty模板里
$smarty->display("main.html");//调用display方法 显示模板文件

 

以上是关于smarty模板调数据库并做添加删除修改和分页的主要内容,如果未能解决你的问题,请参考以下文章

过滤和分页不适用于 ngxpagination 模板

php实现搜索和分页效果-亲测有效

4.Django模板语言和分页

从 \bibliography 中删除参考书目标题和分页符

MVC系列-9.查询和分页

第一个smarty例子--分页显示数据