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

smarty可以实现HTML与php代码的分离,之前我们用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 "删除失败";
}
时间: 2024-11-09 02:13:25

6月5日 smarty应用(增删改查)的相关文章

6月17日 TP框架增删改查

用自动收集表单的形式进行增删改查 MainController.class.php: <?php namespace Home\Controller; use Think\Controller; class MainController extends Controller { //显示 function ShowInfo() { $model = D("Info"); $attr = $model->field("Info.Code as InfoCode,In

1月10日 SQL SERVER 增删改查(第一节)

一.登陆 SQL SERVER两种登录方式的设置:Windows身份登录:SqlServer身份登录.如何设置SQLServer身份验证?1.对象资源管理器右击--属性--安全性--SqlServer和Windows身份登录.2.对象资源管理器--安全性--登录--sa--右击--属性--常规--设置密码3.对象资源管理器--安全性--登录--sa--右击--属性--状态--授予,启用重启数据库服务. 二.SQL语句 ( 增.删.改.查) 1.增(两种写法) insert into 表名(列名,

6月17 练习ThinkPHP的增删改查

利用ThinkPHP连接数据库的增删改查的例题:用到的数据库表名Info表,Nation表 数据显示页面:MainController.class.php中的ShowInfo方法 //例题 //显示所有数据 public function ShowInfo() { $model = D("Info"); $attr = $model->field("Info.Code as InfoCode,Info.Name as InfoName,Info.Sex,Nation.N

Smarty练习增删改

<?php //将题目表显示在页面 include("../init.inc.php"); include("../DBDA.php"); $db = new DBDA(); $sql = "select * from timu"; $attr = $db->Query($sql); $smarty->assign("shuju",$attr); $smarty->display("zhu06

5月3日 数据库增删改查

以往也学习过数据库的增删改查,是通过在数据库中写SQL语句实现的 而近期则是通过在php页面写代码操作数据库,在网页的页面上可以直接点击删除或添加按钮直接实现数据的添加或删除 php代码相当于一个连接数据库和网页的桥梁,也是php实际应用的体现 以一张表为例,实现增加,修改,删除的功能: 这是主界面,将数据库中的数据以表格的形式显现,并增加了添加,修改,删除数据的链接页面地址,通过点击进入新的界面,实现功能: <body> <h1>主页面</h1> <table

5月3日 增删改查

访问数据库实现增删改查以及页面显示的变化稍微动态性的应用: 添加数据: 主页面:Main.php <?php$db = new MySQLi("localhost","root","","mydb");!mysqli_connect_error() or die("连接失败");$sql = "select * from Info";$result = $db->query(

linq的创建 和 数据的增删改查

1.linq创建之前,一定要在sql做好数据表的主外键关系. 2.linq文件是以.dbml结尾,一般一个数据库的名字就是一个linq的名字 3,以实例来演示增删改查 数据库的名字为linq,里面有两个表Users(UserName,Password,Sex,NickName,Birthday,Nation)和Nation(NationCode,NationName) (1)创建名为linq的linq. 创建完之后啥也不用改,如果需要在重新封装类和数据扩展,那就想以前重新建立Users和User

Webform(Linq增删改查)

Linq高集成化的数据访问类,它会自动映射数据库结构,将表名完整映射成为类名,将列名完整映射成字段名数据库数据访问,能大大减少代码量.(1)Linq创建添加LINQ to SQL类,类名需与要连接的数据库名一样 Linq文件是dbml结尾,一个数据库对应一个Linq文件(2)数据库连接打开服务器资源管理器,点击下图黄圈内按钮,连接到数据库,弹出添加连接对话框,填写服务器名(.),选择使用什么身份验证,然后您要连接的数据库,然后将您要用的数据库拉到类中. (3)数据扩展 新建一个部分类(关键字:p

LinQ 创建连接、简单增删改查

LINQ--语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据. 创建连接: 添加新项→LinQ to sql类→重命名为需要用的数据库名→服务器资源管理器→连接到数据库→填写服务器名.用户名密码.连接到数据库的名称→从数据连接中要到要引用的表拖进 数据库名.dbml 中 增删改查表达式 查询: 新建类:数据访问类,添加方法: Data0617Dat