6月5日 smarty应用(增删改查)

Posted D董小姐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6月5日 smarty应用(增删改查)相关的知识,希望对你有一定的参考价值。

smarty可以实现htmlphp代码的分离,之前我们用php代码做过数据的增删改查,现在我们运用smarty来实现这些功能,并用分页显示

 

查询;

主页面,以表格的形式显示数据及需要的操作:one.html

<body>
<h1>主页面</h1>
<form action="one.php" method="get">
<div>题目名称:
<input type="text" name="name" />
所属科目:
<select name="km">
<{foreach $km as $v}>
    <option value="<{$v[0]}>"><{$v[1]}></option>
<{/foreach}>
</select>
<input type="submit" value="查询" />
</div>
</form>
<table border="1" width="100%" cellpadding="0" cellspacing="0">
<tr>
    <td>题目名称</td>
    <td>答案</td>
    <td>所属科目</td>
    <td>难度</td>
    <td>类型</td>
    <td>操作</td>
</tr>

<{foreach $shuju as $v}>
<tr>
    <td><{$v[1]}></td>
    <td><{$v[2]}></td>
    <td><{$v[3]}></td>
    <td><{$v[4]}></td>
    <td><{$v[5]}></td>
    <td><a href="delete.php?code=<{$v[0]}>">删除</a>
   <a href="update.php?code=<{$v[0]}>">修改</a></td>
</tr>
<{/foreach}>


</table>
<a href="add.php">添加数据</a>
<div><{$fpage}></div>
</body>

 

one.php:对one.html页面进行控制,查找数据,传送数据,并通过运行该页面显示one.html页面内容;在该页面实现分页查询

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

$db = new DBDA();
//查科目
$skm = "select * from kemu";
$akm = $db->Query($skm);



//查询条件
$tj = " 1=1 ";//题目
$tj2 = " 1=1 ";//科目
if(!empty($_GET["name"]))
{
    $tj = " name like ‘%{$_GET[‘name‘]}%‘ ";
}
if(!empty($_GET["km"]))
{
    $tj2 = " kemu = ‘{$_GET[‘km‘]}‘ ";
}
$ftj = " where".$tj." and".$tj2;//注意空格

//总数
$sqlz = "select count(*) from timu".$ftj;
$total = $db->StrQuery($sqlz);
$page = new Page($total,2);

//查询数据实现分页
$sql = "select * from timu".$ftj.$page->limit;
$attr = $db->Query($sql);

$fpage = $page->fpage();



$smarty->assign("km",$akm);
$smarty->assign("fpage",$fpage);
$smarty->assign("shuju",$attr);
$smarty->display("one.html");

 

增加:

add.html:增加数据页面

<body>
<h1>添加数据</h1>
<form action="addchuli.php" method="post">
<div>请输入题目名称:<input type="text" name="name" /></div>
<div>请输入选项A:<input type="text" name="a" /></div>
<div>请输入选项B:<input type="text" name="b" /></div>
<div>请输入选项C:<input type="text" name="c" /></div>
<div>请输入选项D:<input type="text" name="d" /></div>
<div>请输入题目答案:<input type="text" name="daan" /></div>
<div>请输入科目:
<select name="kemu">
    <{foreach $kemu as $v}>
        <option value="<{$v[0]}>"><{$v[1]}></option>
    <{/foreach}>
</select>
</div>
<div>请输入题目难度:
<select name="nandu">
    <{foreach $nandu as $v}>
        <option value="<{$v[0]}>"><{$v[1]}></option>
    <{/foreach}>
</select>
</div>
<div>请输入题目类型:
<select name="type">
    <{foreach $type as $v}>
        <option value="<{$v[0]}>"><{$v[1]}></option>
    <{/foreach}>
</select>
</div>
<input type="submit" value="添加" />
</form>
</body>

 

add.php;将数据传入add.html页面

<?php
include("../init.inc.php");
include("../../DBDA.class.php");
$db = new DBDA();
$sql = "select * from kemu";
$attr = $db->Query($sql);

$sql = "select * from nandu";
$attrnd = $db->Query($sql);

$sql = "select * from type";
$attrt = $db->Query($sql);

$smarty->assign("type",$attrt); 
$smarty->assign("nandu",$attrnd); 
$smarty->assign("kemu",$attr);   
$smarty->display("add.html");

 

addchuli.php:将添加的数据加入数据库

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

$name = $_POST["name"];
$daan = $_POST["daan"];
$kemu = $_POST["kemu"];
$nandu = $_POST["nandu"];
$type = $_POST["type"];

$a = $_POST["a"];
$b = $_POST["b"];
$c = $_POST["c"];
$d = $_POST["d"];
//添加题目
$sql = "insert into timu values(‘‘,‘{$name}‘,‘{$daan}‘,‘{$kemu}‘,‘{$nandu}‘,‘{$type}‘)";



$r = $db->Query($sql,0);
if($r)
{
    //添加选项
    $id = $db->conn->insert_id;
    
    $sqla = "insert into xuanxiang values(‘‘,‘{$a}‘,‘A‘,‘{$id}‘)";
    $db->Query($sqla,0);
    
    $sqlb = "insert into xuanxiang values(‘‘,‘{$b}‘,‘B‘,‘{$id}‘)";
    $db->Query($sqlb,0);
    
    $sqlc = "insert into xuanxiang values(‘‘,‘{$c}‘,‘C‘,‘{$id}‘)";
    $db->Query($sqlc,0);
    
    $sqld = "insert into xuanxiang values(‘‘,‘{$d}‘,‘D‘,‘{$id}‘)";
    $db->Query($sqld,0);
    
    header("location:add.php");
    
}
else
{
    echo "添加失败";
}

 

删除:

delete.php:主页面点击删除按钮时,根据传来的主键值删除数据库相关数据

<?php
$code = $_GET["code"];
include("../../DBDA.class.php");
$db = new DBDA();

$sql = "delete from xuanxiang where timu=‘{$code}‘";
$db->Query($sql,0);

$sql = "delete from timu where code=‘{$code}‘";
$db->Query($sql,0);

header("location:one.php");

 

修改;

update.html;主页面点击修改按钮时,到达该页面,并显示出已经存在的相关数据,点击该页面修改按钮后,将修改后数据传入数据库,原数据消失

<body>
<h1>修改数据</h1>
<form action="updatechuli.php?code=<{$timu[0][0]}>" method="post">
<div>请输入题目名称:<input type="text" name="name" value="<{$timu[0][1]}>" /></div>
    
    <{foreach $xuanxiang as $v}>
    <div>请输入选项<{$v[2]}>:<input type="text" name="<{$v[2]}>" value="<{$v[1]}>" /></div>
    <{/foreach}>

<div>请输入题目答案:<input type="text" name="daan" value="<{$timu[0][2]}>" /></div>
<div>请输入科目:
<select name="kemu">
    <{foreach $kemu as $v}>
        <{if $timu[0][3]==$v[0]}>
            <option selected="selected" value="<{$v[0]}>"><{$v[1]}></option>
         <{else}>
            <option value="<{$v[0]}>"><{$v[1]}></option>
        <{/if}>
        
    <{/foreach}>
</select>
</div>
<div>请输入题目难度:
<select name="nandu">
        <{foreach $nandu as $v}>
        <{if $timu[0][4]==$v[0]}>
            <option selected="selected" value="<{$v[0]}>"><{$v[1]}></option>
         <{else}>
            <option value="<{$v[0]}>"><{$v[1]}></option>
        <{/if}>
        
    <{/foreach}>
    
    
</select>
</div>
<div>请输入题目类型:
<select name="type">
        <{foreach $type as $v}>
        <{if $timu[0][5]==$v[0]}>
            <option selected="selected" value="<{$v[0]}>"><{$v[1]}></option>
         <{else}>
            <option value="<{$v[0]}>"><{$v[1]}></option>
        <{/if}>
        
    <{/foreach}>
    
</select>
</div>
<input type="submit" value="修改" />
</form>
</body>

 

update.php:查找数据库,将原有数据传入update.html页面

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

$code = $_GET["code"];

$sql = "select * from timu where code=‘{$code}‘";
$attr = $db->Query($sql);

$sql1 = "select * from xuanxiang where timu=‘{$code}‘";
$attrxx = $db->Query($sql1);

$sql2 = "select * from kemu";
$attrkm = $db->Query($sql2);

$sql3 = "select * from nandu";
$attrnd = $db->Query($sql3);

$sql4 = "select * from type";
$attrt = $db->Query($sql4);

$smarty->assign("type",$attrt);
$smarty->assign("nandu",$attrnd);
$smarty->assign("kemu",$attrkm);
$smarty->assign("xuanxiang",$attrxx);
$smarty->assign("timu",$attr);
$smarty->display("update.html");

 

updatechuli.php:将修改后的数据提交到数据库,原有数据删除

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

$name = $_POST["name"];
$daan = $_POST["daan"];
$kemu = $_POST["kemu"];
$nandu = $_POST["nandu"];
$type = $_POST["type"];
$code = $_GET["code"];

$a = $_POST["A"];
$b = $_POST["B"];
$c = $_POST["C"];
$d = $_POST["D"];

$sqls = "delete from timu where code=‘{$code}‘";
if($db->Query($sqls,0))
{

$sql = "insert into timu values(‘‘,‘{$name}‘,‘{$daan}‘,‘{$kemu}‘,‘{$nandu}‘,‘{type}‘)";
if($db->Query($sql,0))
{
    //添加选项
    $id = $db->conn->insert_id;
    
    $sqla = "insert into xuanxiang values(‘‘,‘{$a}‘,‘A‘,‘{$id}‘)";
    $db->Query($sqla,0);
    
    $sqlb = "insert into xuanxiang values(‘‘,‘{$b}‘,‘B‘,‘{$id}‘)";
    $db->Query($sqlb,0);
    
    $sqlc = "insert into xuanxiang values(‘‘,‘{$c}‘,‘C‘,‘{$id}‘)";
    $db->Query($sqlc,0);
    
    $sqld = "insert into xuanxiang values(‘‘,‘{$d}‘,‘D‘,‘{$id}‘)";
    $db->Query($sqld,0);
    header("location:one.php");
}
else
{
    echo "修改失败";
}
}
else
{
    echo "删除失败";
}

 

以上是关于6月5日 smarty应用(增删改查)的主要内容,如果未能解决你的问题,请参考以下文章

5月11日 python学习总结 子查询pymysql模块增删改查防止sql注入问题

6月17 练习ThinkPHP的增删改查

winform 用linq to SQL 类实现数据库的增删改查 2016年02月18日

Express实战 - 应用案例- realworld-API - 路由设计 - mongoose - 数据验证 - 密码加密 - 登录接口 - 身份认证 - token - 增删改查API(代码片段

MyBatis增删改查(步骤详细,由浅入深,适合初学者,只看这一篇就够了)

5月3日上课笔记-XML解析