舉例如下:
陽東網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)從2013年成立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
創(chuàng)建userinfo_update.php頁面用于查詢用戶信息,先顯示信息,在修改:
先通過GET獲取用戶編號(hào)查詢用戶信息:
$sql = "select * from user_info where user_id='".$_GET['userId']."'";
$result = mysql_query($sql,$con);
if($row = mysql_fetch_array($result)){
}
頁面效果:
創(chuàng)建update.php文件,用于修改用戶信息:
使用到了mysql_affected_rows() 函數(shù)返回前一次 MySQL 操作所影響的記錄行數(shù)。
//通過post獲取頁面提交數(shù)據(jù)信息
$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);//執(zhí)行SQL
$mark? = mysql_affected_rows();//返回影響行數(shù)
$url = "userinf_select.php";
運(yùn)行結(jié)果
創(chuàng)建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();//返回影響行數(shù)
if($mark0){
echo "刪除成功";
}else{
echo? "刪除失敗";
}
mysql_close($con);
運(yùn)行結(jié)果:
使用TP框架主要是比較簡(jiǎn)單一些,之前我們寫增刪改,代碼量相對(duì)來說還是比較多的,這里利用tp框架寫起來是非常簡(jiǎn)單的,大大的減少了代碼量
這里我是以數(shù)據(jù)庫的nation表為例的,nation表只有兩列,一列是code
另一列是name,首先是增加add方法
functinon
add()
{
if(empty($_POST))//首先要判斷一下是否有傳過來的值
{
//如果沒有傳過來的值,那么直接顯示模板就可以,在view文件夾下的Main文件夾下建一個(gè)名為add.html的文件就可以了
$this-show();
}
else
{
//如果有傳過來的值,需要收集信息添加
$n-D("nation");
$n-create();
if($n-add())
{
//已經(jīng)添加成功了,需要跳轉(zhuǎn)頁面,跳轉(zhuǎn)到一個(gè)方法
$this-success("添加成功","add",3);
}
else
{
$this-error("添加失敗");
}
}
}
其次是刪除的方法,刪除的方法就比較簡(jiǎn)單了,只要傳過來一個(gè)主鍵值就可以的
function
del($code)
{
$n=D("nation");
$n-delete($code);
}
最后是修改的方法,修改的方法相對(duì)來說要麻煩一丟丟,因?yàn)樵谖覀兇蜷_需要修改的界面
會(huì)有一個(gè)默認(rèn)的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("修改失敗")
}
}
}
類庫擴(kuò)展
類庫擴(kuò)展包括基類庫擴(kuò)展、應(yīng)用類庫擴(kuò)展和第三方類庫擴(kuò)展,所有擴(kuò)展類庫不會(huì)自動(dòng)加載,需要手動(dòng)加載或者定義別名和配置自動(dòng)加載(詳細(xì)可以參考4.2.3類庫導(dǎo)入和4.2.5自動(dòng)加載)。
基類庫擴(kuò)展
目前支持的基類庫擴(kuò)展包括ORG(第三方公共類庫包)和Com(企業(yè)類庫包)。你可以在ORG類庫目錄下面添加自己需要的類庫,你甚至還可以創(chuàng)建屬于自己企業(yè)的類庫,只需要在Extend/Library目錄下面創(chuàng)建Com目錄,然后在里面增加相應(yīng)的類庫就可以方便的使用import方法導(dǎo)入了。例如,我們?cè)贓xtend/Library/Com下面創(chuàng)建了Sina目錄,并且放了Util\UnitTest.class.php類庫文件,可以使用下面的方式導(dǎo)入
import('Com.Sina.Util.UnitTest');
目前官方提供的擴(kuò)展或者第三方擴(kuò)展都在ORG類庫包下面。
應(yīng)用類庫擴(kuò)展
項(xiàng)目類庫的擴(kuò)展,和基類庫的擴(kuò)展一樣,我們可以在項(xiàng)目類庫目錄增加你想要的子目錄,也只有在項(xiàng)目類庫目錄下面增加的類庫才能使用import方法導(dǎo)入。例如,我們?cè)贛yApp的項(xiàng)目類庫目錄Lib下面增加Common和Util目錄,就可以這樣加載這些目錄下面的類庫文件了:
import('MyApp.Util.UnitTest');
import('@.Common.CommonUtil');
第三方類庫擴(kuò)展
如果你直接使用的是第三方的類庫包,或者是類名和后綴和ThinkPHP的默認(rèn)規(guī)則不符合的,我們建議你放到第三方類庫擴(kuò)展目錄Extend/Vendor目錄下面,并使用vendor方法來導(dǎo)入。
例如,我們把Zend的Filter\Dir.php 放到Vendor目錄下面,這個(gè)時(shí)候Dir文件的路徑就是
Vendor\Zend\Filter\Dir.php,我們使用vendor方法導(dǎo)入就是:
Vendor('Zend.Filter.Dir');
需要注意的是,vendor方法默認(rèn)導(dǎo)入的類庫后綴是php的而不是class.php的,如果你的第三方類庫的后綴是class.php,可以使用:
Vendor('Zend.Filter.Dir','','.class.php');
或者使用:
import('Zend.Filter.Dir',VENDOR_PATH);
通過使用第三方類庫擴(kuò)展,我們可以直接使用Zend、CI或者其他框架中的類庫。
TP里面有個(gè)目錄是默認(rèn)的模板文件夾,如全站的head或是新聞列表等文件都存放在那里面,你可以通過修改里面的模板文件可以達(dá)到修改文檔樣式的目的,如果是要修改功能模塊,則可能需要你對(duì)這個(gè)框架有個(gè)清晰的認(rèn)識(shí)了!
可以使用本地javascript腳本實(shí)現(xiàn):右框架修改數(shù)據(jù)完成后,如果是直接提交的,可以在處理對(duì)數(shù)據(jù)庫內(nèi)容的修改后,返回一段js(或?qū)σ粋€(gè)預(yù)定函數(shù)的調(diào)用),這段js負(fù)責(zé)查找左框架并刷新;如果是使用ajax方式提交的,在處理完成成功的事件中調(diào)用對(duì)左框架刷新的腳本。
簡(jiǎn)單舉例:
假設(shè)左框架id為:frame_left,右框架名為:frame_right,當(dāng)右框架提交了一個(gè)修改表單并完成后,返回一段js腳本:scriptwindow.parent.frames.frame_left.location.reload();/script
這樣就會(huì)自動(dòng)刷新左邊的框架了。
CI框架下的PHP增刪改查總結(jié):
controllers下的 cquery.php文件
[php] view plain copy
?php
class CQuery extends Controller {
//構(gòu)造函數(shù)
function CQuery() {
parent::Controller();
// $this-load-database();
}
function index() {
//調(diào)用model 其中train為外層文件夾 MQuery為model名稱 queryList為重命名
$this-load-model('train/MQuery','queryList');
//獲得返回的結(jié)果集 這里確定調(diào)用model中的哪個(gè)方法
$result = $this-queryList-queryList();
//將結(jié)果集賦給res
$this-smarty-assign('res',$result);
//跳轉(zhuǎn)到顯示頁面
$this-smarty-view('train/vquery.tpl');
}
//進(jìn)入新增頁面
function addPage() {
$this-smarty-view('train/addPage.tpl');
}
//新增
function add() {
//獲得前臺(tái)數(shù)據(jù)
//用戶名
$memberName = $this-input-post('memberName');
//密碼
$password = $this-input-post('password');
//真實(shí)姓名
$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');
//調(diào)用model
$this-load-model('train/MQuery','addRecord');
//向model中的addRecord傳值
$result = $this-addRecord-addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);
//判斷返回的結(jié)果,如果返回true,則調(diào)用本頁的index方法,不要寫 $result == false 因?yàn)榉祷氐闹滴幢厥莊alse 也有可能是""
if ($result) {
$this-index();
} else {
echo "add failed.";
}
}
//刪除
function deletePage() {
//獲得ID
$deleteID = $this-uri-segment(4);
//調(diào)用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);
//將結(jié)果集賦給res
$this-smarty-assign('res',$result);
//跳轉(zhuǎn)到顯示頁面
$this-smarty-view('train/changePage.tpl');
}
//修改
function change() {
//獲得前臺(tái)數(shù)據(jù)
//ID
$ID = $this-input-post('id');
//用戶名
$memberName = $this-input-post('memberName');
//密碼
$password = $this-input-post('password');
//真實(shí)姓名
$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');
//調(diào)用model
$this-load-model('train/MQuery','change');
//向model中的change傳值
$result = $this-change-change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer);
//判斷返回的結(jié)果,如果返回true,則調(diào)用本頁的index方法,不要寫 $result == false 因?yàn)榉祷氐闹滴幢厥莊alse 也有可能是""
if ($result) {
$this-index();
} else {
echo "change failed.";
}
}
}
models中的 mquery.php 文件
[php] view plain copy
?php
class MQuery extends Model {
//構(gòu)造函數(shù)
function MQuery() {
parent::Model();
//連接數(shù)據(jù)庫
$this-load-database();
}
//查詢列表
function queryList() {
//防止select出的數(shù)據(jù)存在亂碼問題
//mysql_query("SET NAMES GBK");
//SQL語句
$sql = "SELECT ID,member_name,sex,e_mail FROM user_info_t";
//執(zhí)行SQL
$rs = $this-db-query($sql);
//將查詢結(jié)果放入到結(jié)果集中
$result = $rs-result();
//關(guān)閉數(shù)據(jù)庫
$this-db-close();
//將結(jié)果集返回
return $result;
}
//新增
function addRecord($memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {
//防止select出的數(shù)據(jù)存在亂碼問題
//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')";
//執(zhí)行SQL
$result = $this-db-query($sql);
//關(guān)閉數(shù)據(jù)庫
$this-db-close();
//返回值
return $result;
}
//刪除
function delRecord($deleteID) {
//防止select出的數(shù)據(jù)存在亂碼問題
//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出的數(shù)據(jù)存在亂碼問題
//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";
//執(zhí)行SQL
$rs = $this-db-query($sql);
$result = $rs-row();//$result = $rs[0]
//關(guān)閉數(shù)據(jù)庫
$this-db-close();
//將結(jié)果集返回
return $result;
}
//修改
function change($ID,$memberName,$password,$userRealName,$sex,$bornDay,$eMail,$question,$answer) {
//防止select出的數(shù)據(jù)存在亂碼問題
//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";
//執(zhí)行SQL
$result = $this-db-query($sql);
//關(guān)閉數(shù)據(jù)庫
$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"http://td
/tr
tr
td密碼/td
tdinput type="text" class="text" name="password" id="password"http://td
/tr
tr
td真實(shí)姓名/td
tdinput type="text" class="text" name="userRealName" id="userRealName"http://td
/tr
tr
td性別/td
tdinput type="text" class="text" name="sex" id="sex"http://td
/tr
tr
td出生日期/td
tdinput type="text" class="text" name="bornDay" id="bornDay"http://td
/tr
tr
tde_mail/td
tdinput type="text" class="text" name="eMail" id="eMail"http://td
/tr
tr
td密碼問題/td
tdinput type="text" class="text" name="question" id="question"http://td
/tr
tr
td密碼答案/td
tdinput type="text" class="text" name="answer" id="answer"http://td
/tr
/table
table
tr
tdinput type="submit" class="button" name="OK" value="提交" /
/td
/tr
/table/form
/body
/html