十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
举例如下:
阳东网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联从2013年成立到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
创建userinfo_update.php页面用于查询用户信息,先显示信息,在修改:
先通过GET获取用户编号查询用户信息:
$sql = "select * from user_info where user_id='".$_GET['userId']."'";
$result = mysql_query($sql,$con);
if($row = mysql_fetch_array($result)){
}
页面效果:
创建update.php文件,用于修改用户信息:
使用到了mysql_affected_rows() 函数返回前一次 MySQL 操作所影响的记录行数。
//通过post获取页面提交数据信息
$userId = $_POST[userId];
$userName = $_POST[userName];
$userAge = $_POST[userAge];
$sql = "update user_info set user_name='".$userName."',user_age=".$userAge." where user_id='".$userId."'";
mysql_query($sql,$conn);//执行SQL
$mark = mysql_affected_rows();//返回影响行数
$url = "userinf_select.php";
运行结果
创建delete.php文件,完成删除用户信息功能:
$userId = $_GET['userId'];
include 'connection.php';
$sql = "delete from user_info where user_id='".$userId."'";
mysql_query($sql,$con);
$mark = mysql_affected_rows();//返回影响行数
if($mark0){
echo "删除成功";
}else{
echo "删除失败";
}
mysql_close($con);
运行结果:
使用TP框架主要是比较简单一些,之前我们写增删改,代码量相对来说还是比较多的,这里利用tp框架写起来是非常简单的,大大的减少了代码量
这里我是以数据库的nation表为例的,nation表只有两列,一列是code
另一列是name,首先是增加add方法
functinon
add()
{
if(empty($_POST))//首先要判断一下是否有传过来的值
{
//如果没有传过来的值,那么直接显示模板就可以,在view文件夹下的Main文件夹下建一个名为add.html的文件就可以了
$this-show();
}
else
{
//如果有传过来的值,需要收集信息添加
$n-D("nation");
$n-create();
if($n-add())
{
//已经添加成功了,需要跳转页面,跳转到一个方法
$this-success("添加成功","add",3);
}
else
{
$this-error("添加失败");
}
}
}
其次是删除的方法,删除的方法就比较简单了,只要传过来一个主键值就可以的
function
del($code)
{
$n=D("nation");
$n-delete($code);
}
最后是修改的方法,修改的方法相对来说要麻烦一丢丢,因为在我们打开需要修改的界面
会有一个默认的value值
function
update()
{
$n=D("nation");
$arr=$n-find($_GET["b"])
if(empty($_POST))
{
$this-assign("arr",$arr);
//这样在模板页面的input
code的value值为{$arr.code}
同理input
name的value值为{$arr.name}
$this-show();
}
else
{
$n-create();
if($n-save())
{
$this-success("修改成功","add",3);
}
else
{
$this-error("修改失败")
}
}
}
类库扩展
类库扩展包括基类库扩展、应用类库扩展和第三方类库扩展,所有扩展类库不会自动加载,需要手动加载或者定义别名和配置自动加载(详细可以参考4.2.3类库导入和4.2.5自动加载)。
基类库扩展
目前支持的基类库扩展包括ORG(第三方公共类库包)和Com(企业类库包)。你可以在ORG类库目录下面添加自己需要的类库,你甚至还可以创建属于自己企业的类库,只需要在Extend/Library目录下面创建Com目录,然后在里面增加相应的类库就可以方便的使用import方法导入了。例如,我们在Extend/Library/Com下面创建了Sina目录,并且放了Util\UnitTest.class.php类库文件,可以使用下面的方式导入
import('Com.Sina.Util.UnitTest');
目前官方提供的扩展或者第三方扩展都在ORG类库包下面。
应用类库扩展
项目类库的扩展,和基类库的扩展一样,我们可以在项目类库目录增加你想要的子目录,也只有在项目类库目录下面增加的类库才能使用import方法导入。例如,我们在MyApp的项目类库目录Lib下面增加Common和Util目录,就可以这样加载这些目录下面的类库文件了:
import('MyApp.Util.UnitTest');
import('@.Common.CommonUtil');
第三方类库扩展
如果你直接使用的是第三方的类库包,或者是类名和后缀和ThinkPHP的默认规则不符合的,我们建议你放到第三方类库扩展目录Extend/Vendor目录下面,并使用vendor方法来导入。
例如,我们把Zend的Filter\Dir.php 放到Vendor目录下面,这个时候Dir文件的路径就是
Vendor\Zend\Filter\Dir.php,我们使用vendor方法导入就是:
Vendor('Zend.Filter.Dir');
需要注意的是,vendor方法默认导入的类库后缀是php的而不是class.php的,如果你的第三方类库的后缀是class.php,可以使用:
Vendor('Zend.Filter.Dir','','.class.php');
或者使用:
import('Zend.Filter.Dir',VENDOR_PATH);
通过使用第三方类库扩展,我们可以直接使用Zend、CI或者其他框架中的类库。
TP里面有个目录是默认的模板文件夹,如全站的head或是新闻列表等文件都存放在那里面,你可以通过修改里面的模板文件可以达到修改文档样式的目的,如果是要修改功能模块,则可能需要你对这个框架有个清晰的认识了!
可以使用本地javascript脚本实现:右框架修改数据完成后,如果是直接提交的,可以在处理对数据库内容的修改后,返回一段js(或对一个预定函数的调用),这段js负责查找左框架并刷新;如果是使用ajax方式提交的,在处理完成成功的事件中调用对左框架刷新的脚本。
简单举例:
假设左框架id为:frame_left,右框架名为:frame_right,当右框架提交了一个修改表单并完成后,返回一段js脚本:scriptwindow.parent.frames.frame_left.location.reload();/script
这样就会自动刷新左边的框架了。
CI框架下的PHP增删改查总结:
controllers下的 cquery.php文件
[php] view plain copy
?php
class CQuery extends Controller {
//构造函数
function CQuery() {
parent::Controller();
// $this-load-database();
}
function index() {
//调用model 其中train为外层文件夹 MQuery为model名称 queryList为重命名
$this-load-model('train/MQuery','queryList');
//获得返回的结果集 这里确定调用model中的哪个方法
$result = $this-queryList-queryList();
//将结果集赋给res
$this-smarty-assign('res',$result);
//跳转到显示页面
$this-smarty-view('train/vquery.tpl');
}
//进入新增页面
function addPage() {
$this-smarty-view('train/addPage.tpl');
}
//新增
function add() {
//获得前台数据
//用户名
$memberName = $this-input-post('memberName');
//密码
$password = $this-input-post('password');
//真实姓名
$userRealName = $this-input-post('userRealName');
//性别
$sex = $this-input-post('sex');
//出生日期
$bornDay = $this-input-post('bornDay');
//e_mail
$eMail = $this-input-post('eMail');
//密码问题
$question = $this-input-post('question');
//密码答案
$answer = $this-input-post('answer');
//调用model
$this-load-model('train/MQuery','addRecord');
//向model中的addRecord传值
$result = $this-addRecord-addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);
//判断返回的结果,如果返回true,则调用本页的index方法,不要写 $result == false 因为返回的值未必是false 也有可能是""
if ($result) {
$this-index();
} else {
echo "add failed.";
}
}
//删除
function deletePage() {
//获得ID
$deleteID = $this-uri-segment(4);
//调用model
$this-load-model('train/MQuery','delRecord');
//将值传入到model的delRecord方法中
$result = $this-delRecord-delRecord($deleteID);
//判断返回值
if ($result) {
$this-index();
} else {
echo "delect failed.";
}
}
//修改先查询
function changePage() {
$changeID = $this-uri-segment(4);
$this-load-model('train/MQuery','changeRecord');
$result = $this-changeRecord-changeRecord($changeID);
//将结果集赋给res
$this-smarty-assign('res',$result);
//跳转到显示页面
$this-smarty-view('train/changePage.tpl');
}
//修改
function change() {
//获得前台数据
//ID
$ID = $this-input-post('id');
//用户名
$memberName = $this-input-post('memberName');
//密码
$password = $this-input-post('password');
//真实姓名
$userRealName = $this-input-post('userRealName');
//性别
$sex = $this-input-post('sex');
//出生日期
$bornDay = $this-input-post('bornDay');
//e_mail
$eMail = $this-input-post('eMail');
//密码问题
$question = $this-input-post('question');
//密码答案
$answer = $this-input-post('answer');
//调用model
$this-load-model('train/MQuery','change');
//向model中的change传值
$result = $this-change-change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);
//判断返回的结果,如果返回true,则调用本页的index方法,不要写 $result == false 因为返回的值未必是false 也有可能是""
if ($result) {
$this-index();
} else {
echo "change failed.";
}
}
}
models中的 mquery.php 文件
[php] view plain copy
?php
class MQuery extends Model {
//构造函数
function MQuery() {
parent::Model();
//连接数据库
$this-load-database();
}
//查询列表
function queryList() {
//防止select出的数据存在乱码问题
//mysql_query("SET NAMES GBK");
//SQL语句
$sql = "SELECT ID,member_name,sex,e_mail FROM user_info_t";
//执行SQL
$rs = $this-db-query($sql);
//将查询结果放入到结果集中
$result = $rs-result();
//关闭数据库
$this-db-close();
//将结果集返回
return $result;
}
//新增
function addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {
//防止select出的数据存在乱码问题
//mysql_query("SET NAMES GBK");
//SQL语句
$sql = "INSERT INTO user_info_t (member_name,password,user_real_name,sex,born_day,e_mail,question,answer) " .
"VALUES ('$memberName','$password','$userRealName','$sex','$bornDay','$eMail','$question','$answer')";
//执行SQL
$result = $this-db-query($sql);
//关闭数据库
$this-db-close();
//返回值
return $result;
}
//删除
function delRecord($deleteID) {
//防止select出的数据存在乱码问题
//mysql_query("SET NAMES GBK");
$sql = "DELETE FROM user_info_t WHERE ID = $deleteID";
$result = $this-db-query($sql);
$this-db-close();
return $result;
}
//修改前查询
function changeRecord($changeID) {
//防止select出的数据存在乱码问题
//mysql_query("SET NAMES GBK");
$sql = "SELECT ID,member_name,password,user_real_name,sex,born_day,e_mail,question,answer FROM user_info_t WHERE ID = $changeID";
//执行SQL
$rs = $this-db-query($sql);
$result = $rs-row();//$result = $rs[0]
//关闭数据库
$this-db-close();
//将结果集返回
return $result;
}
//修改
function change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {
//防止select出的数据存在乱码问题
//mysql_query("SET NAMES GBK");
//SQL语句
$sql = "update user_info_t set member_name = '$memberName',password = '$password', user_real_name = '$userRealName'," .
"sex = '$sex',born_day = '$bornDay',e_mail = '$eMail',question = '$question',answer = '$answer'" .
"where ID = $ID";
//执行SQL
$result = $this-db-query($sql);
//关闭数据库
$this-db-close();
//返回值
return $result;
}
}
views 下的 addPage.tpl文件
[php] view plain copy
html
head
/head
bodyform action="{{site_url url='train/cquery/add'}}" method="post"
table border='1'
tr
td用户名/td
tdinput type="text" class="text" name="memberName" id="memberName"//td
/tr
tr
td密码/td
tdinput type="text" class="text" name="password" id="password"//td
/tr
tr
td真实姓名/td
tdinput type="text" class="text" name="userRealName" id="userRealName"//td
/tr
tr
td性别/td
tdinput type="text" class="text" name="sex" id="sex"//td
/tr
tr
td出生日期/td
tdinput type="text" class="text" name="bornDay" id="bornDay"//td
/tr
tr
tde_mail/td
tdinput type="text" class="text" name="eMail" id="eMail"//td
/tr
tr
td密码问题/td
tdinput type="text" class="text" name="question" id="question"//td
/tr
tr
td密码答案/td
tdinput type="text" class="text" name="answer" id="answer"//td
/tr
/table
table
tr
tdinput type="submit" class="button" name="OK" value="提交" /
/td
/tr
/table/form
/body
/html