《PHP網(wǎng)頁案例任務(wù)教程》課件 5-3 設(shè)計編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁_第1頁
《PHP網(wǎng)頁案例任務(wù)教程》課件 5-3 設(shè)計編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁_第2頁
《PHP網(wǎng)頁案例任務(wù)教程》課件 5-3 設(shè)計編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁_第3頁
《PHP網(wǎng)頁案例任務(wù)教程》課件 5-3 設(shè)計編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁_第4頁
《PHP網(wǎng)頁案例任務(wù)教程》課件 5-3 設(shè)計編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

任務(wù)三設(shè)計編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁復(fù)習(xí)知識與技能任務(wù)描述根據(jù)網(wǎng)絡(luò)信息部門負(fù)責(zé)人的要求,工程師小明需要在項目中設(shè)計名為“050301.php”的動態(tài)網(wǎng)頁,實現(xiàn)對留言數(shù)據(jù)的分頁和編輯管理功能。任務(wù)要點:(1)設(shè)計動態(tài)網(wǎng)頁“050301.php”。(2)實現(xiàn)分頁功能,將留言數(shù)據(jù)分頁展示,每頁顯示一條數(shù)據(jù),方便顯示管理。(3)實現(xiàn)編輯功能,允許對當(dāng)前頁這一條留言數(shù)據(jù)進(jìn)行編輯操作,以便及時更新或修改信息。完成任務(wù)后,需進(jìn)行充分的測試和調(diào)試,確保功能正常運行。如有問題或需要進(jìn)一步指導(dǎo),請及時向上級領(lǐng)導(dǎo)匯報并尋求支持。請按照以上要求完成任務(wù),并確保代碼的可靠性、安全性和可維護(hù)性。設(shè)計界面效果如圖5-3-1所示。任務(wù)分析根據(jù)任務(wù)要求,部門經(jīng)理布置給工程師小明的任務(wù)是設(shè)計動態(tài)網(wǎng)頁,用于管理客戶留言數(shù)據(jù)。以下是任務(wù)的概要分析。1.技術(shù)準(zhǔn)備工作(1)數(shù)據(jù)庫系統(tǒng)主要技術(shù)參數(shù):連接名稱為“PHPMySQL",MySQL服務(wù)器IP地址為“”,用戶名為“root”,密碼為“168168”,數(shù)據(jù)庫名稱為“l(fā)iuyan”。(2)網(wǎng)站系統(tǒng)主要技術(shù)參數(shù):Web站點路徑為C:\phpweb;Web測試IP地址為;web測試端口號為8899。(3)網(wǎng)頁文件名為“050301.php”。2.任務(wù)施工簡要步驟(1)引入所需的PHPMySQL連接文件,確保數(shù)據(jù)庫連接正常。(2)獲取當(dāng)前頁碼和每頁最大記錄數(shù)一條記錄數(shù)據(jù),并計算起始行數(shù)。(3)執(zhí)行查詢語句,根據(jù)起始行數(shù)和每頁記錄數(shù),獲取記錄集。(4)遍歷結(jié)果記錄集,顯示留言數(shù)據(jù),并提供編輯超鏈接或按鈕。(5)根據(jù)需要在表單中為每條留言數(shù)據(jù)設(shè)置隱藏字段,用于后續(xù)編輯操作。(6)顯示分頁導(dǎo)航,包括第一頁、前一頁、下一頁和最后一頁的鏈接。(7)及時釋放查詢結(jié)果集。(8)完成設(shè)計后,進(jìn)行全面的測試、調(diào)試和驗收工作,確保頁面在各種瀏覽器和設(shè)備上的兼容性和正常顯示,記錄主要施工技術(shù)參數(shù)。以上是任務(wù)的簡要分析,工程師小明需要根據(jù)這個分析,按照要求進(jìn)行網(wǎng)頁設(shè)計和編碼,確保留言數(shù)據(jù)的分頁展示、編輯功能正常運行。在設(shè)計過程中,應(yīng)注意代碼的可靠性、安全性和可維護(hù)性。完成后,進(jìn)行充分的測試和調(diào)試,確保功能無誤。如有問題或需要進(jìn)一步指導(dǎo),請及時與上級領(lǐng)導(dǎo)溝通并尋求支持。1.準(zhǔn)備工作按照網(wǎng)站規(guī)劃參數(shù)進(jìn)行配置。Web站點路徑:C:\phpweb。Web測試IP地址:。Web測試端口號:8899。參照項目一中任務(wù)一、任務(wù)二、任務(wù)三,配置好WAMP環(huán)境,配置好Dreamweaver網(wǎng)站環(huán)境,如果已經(jīng)配置好WAMP環(huán)境和Dreamweaver網(wǎng)站環(huán)境,本步驟可以略過,啟動配置WAMP與Dreamweaver創(chuàng)建網(wǎng)站過程詳見項目一的三個任務(wù)步驟,在MySQL數(shù)據(jù)庫服務(wù)器中,準(zhǔn)備好“l(fā)iuyan”數(shù)據(jù)庫和“l(fā)iuyan”表,準(zhǔn)備好賬號“root”、密碼“168168”備用。2.修改動態(tài)網(wǎng)頁“050201.php”(1)鼠標(biāo)單擊“開始”→“動態(tài)網(wǎng)頁”啟動Dreamweaver軟件,單擊“文件”菜單,單擊“新建”按鈕創(chuàng)建PHP動態(tài)網(wǎng)頁“050201.php”。(2)修改前注意對“050201.php”文件備份。(3)打開網(wǎng)頁“050201.php”,在表格ly_id列左側(cè)插入一列,鍵盤分別輸入“操作”和“編輯修改”,在表格第一行對應(yīng)的單元格中分別輸入“序號”“標(biāo)題”和“留言內(nèi)容”,之后刪除標(biāo)題欄中的英文,刪除紅色方框的表格列,具體如圖5-3-2所示。(4)選擇上一步輸入“編輯修改”四個字,屬性中輸入超級鏈接“050301.php?ly_id=<?phpecho$row_Recordset1['ly_id'];?>”,見下面源代碼,如圖5-3-3所示。<ahref="050301.php?ly_id=<?phpecho$row_Recordset1['ly_id'];?>">編輯修改</a>(5)對表格進(jìn)行調(diào)整,插入兩列表格,設(shè)置表格寬度為750,把序號、標(biāo)題、內(nèi)容、操作調(diào)整到表格第一列,把其他部分調(diào)整到表格第二列,具體調(diào)整可以用鼠標(biāo)選擇后拖動來完成,調(diào)整參考如圖5-3-4所示。3.“050201.php”修改后的網(wǎng)頁源代碼1<?phprequire_once('Connections/PHPMySQL.php');?>2<?php3//導(dǎo)入數(shù)據(jù)庫連接文件,建立數(shù)據(jù)庫連接4//這個文件可能包含與數(shù)據(jù)庫連接相關(guān)的代碼5//Connections/PHPMySQL.php中可能包含數(shù)據(jù)庫連接參數(shù)等信息6//require_once用于確保只導(dǎo)入一次,避免重復(fù)連接數(shù)據(jù)庫78if(!function_exists("GetSQLValueString")){9//檢查函數(shù)'GetSQLValueString'是否已存在10//如果函數(shù)'GetSQLValueString'不存在,定義函數(shù)'GetSQLValueString'11//'GetSQLValueString'函數(shù)用于對數(shù)據(jù)進(jìn)行清理和準(zhǔn)備,以便用于SQL查詢12functionGetSQLValueString($theValue,$theType,$theDefinedValue="",$theNotDefinedValue="")13{14//開始定義函數(shù)主體15//根據(jù)傳入的值$theValue和當(dāng)前的PHP版本進(jìn)行數(shù)據(jù)處理和準(zhǔn)備1617if(PHP_VERSION<6){18//檢查PHP版本是否小于619//如果PHP版本小于6,則處理斜杠問題20//如果PHP啟用了'magic_quotes_gpc',則移除值中的斜杠21//這是為了確保數(shù)據(jù)在SQL查詢中沒有額外的轉(zhuǎn)義符號22$theValue=get_magic_quotes_gpc()?stripslashes($theValue)$theValue;23}2425//根據(jù)PHP版本,使用適當(dāng)?shù)暮瘮?shù)對值進(jìn)行轉(zhuǎn)義或轉(zhuǎn)換26//如果存在'mysql_real_escape_string'函數(shù),則使用它對值進(jìn)行轉(zhuǎn)義27//否則,使用'mysql_escape_string'函數(shù)進(jìn)行轉(zhuǎn)義28$theValue=function_exists("mysql_real_escape_string")?mysql_real_escape_string($theValue)mysql_escape_string($theValue);2930//根據(jù)不同的數(shù)據(jù)類型,為SQL格式化值31switch($theType){32case"text":33//對于文本數(shù)據(jù),在值周圍添加單引號用于SQL34$theValue=($theValue!="")?"'".$theValue."'""NULL";35break;36case"long":37case"int":38//對于整數(shù)數(shù)據(jù),在值不為空時將其轉(zhuǎn)換為整數(shù)類型,否則設(shè)置為NULL39$theValue=($theValue!="")?intval($theValue)"NULL";40break;41case"double":42//對于雙精度數(shù)據(jù),在值不為空時將其轉(zhuǎn)換為浮點數(shù)類型,否則設(shè)置為NULL43$theValue=($theValue!="")?doubleval($theValue)"NULL";44break;45case"date":46//對于日期數(shù)據(jù),在值周圍添加單引號用于SQL47$theValue=($theValue!="")?"'".$theValue."'""NULL";48break;49case"defined":50//對于定義的數(shù)據(jù),根據(jù)情況使用已定義值或未定義值51$theValue=($theValue!="")?$theDefinedValue$theNotDefinedValue;52break;53}54//返回經(jīng)過清理和格式化的值,用于SQL查詢55return$theValue;56}57}5859//設(shè)置當(dāng)前頁面的變量$currentPage為當(dāng)前的PHP文件名60$currentPage=$_SERVER["PHP_SELF"];6162//設(shè)置每頁顯示的最大行數(shù)為163$maxRows_Recordset1=1;6465//初始化當(dāng)前頁碼為066$pageNum_Recordset1=0;67if(isset($_GET['pageNum_Recordset1'])){68//如果存在GET請求中的pageNum_Recordset1參數(shù),則獲取當(dāng)前頁碼69$pageNum_Recordset1=$_GET['pageNum_Recordset1'];70}7172//計算起始行數(shù)73$startRow_Recordset1=$pageNum_Recordset1*$maxRows_Recordset1;7475//選擇數(shù)據(jù)庫'PHPMySQL'并連接76mysql_select_db($database_PHPMySQL,$PHPMySQL);7778//生成SQL查詢,用于從'liuyan'表中選擇所有字段79$query_Recordset1="SELECT*FROMliuyan";8081//添加LIMIT子句以限制返回的行數(shù),實現(xiàn)分頁效果82$query_limit_Recordset1=sprintf("%sLIMIT%d,%d",$query_Recordset1,$startRow_Recordset1,$maxRows_Recordset1);8384//執(zhí)行SQL查詢,并將結(jié)果存儲在'$Recordset1'中,如果出現(xiàn)錯誤則顯示錯誤消息85$Recordset1=mysql_query($query_limit_Recordset1,$PHPMySQL)ordie(mysql_error());8687//將結(jié)果集的第一行存儲在'$row_Recordset1'中88$row_Recordset1=mysql_fetch_assoc($Recordset1);8990if(isset($_GET['totalRows_Recordset1'])){91//如果存在GET請求中的totalRows_Recordset1參數(shù),則獲取總行數(shù)92$totalRows_Recordset1=$_GET['totalRows_Recordset1'];93}else{94//如果totalRows_Recordset1參數(shù)不存在,通過執(zhí)行未添加LIMIT子句的查詢獲取總行數(shù)95$all_Recordset1=mysql_query($query_Recordset1);96$totalRows_Recordset1=mysql_num_rows($all_Recordset1);97}9899//計算總頁數(shù)100$totalPages_Recordset1=ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;101102//初始化$queryString_Recordset1為空字符串103$queryString_Recordset1="";104105if(!empty($_SERVER['QUERY_STRING'])){106//如果URL中存在查詢字符串,則處理分頁參數(shù)并生成新的查詢字符串107$params=explode("&",$_SERVER['QUERY_STRING']);108$newParams=array();109foreach($paramsas$param){110//排除pageNum_Recordset1和totalRows_Recordset1參數(shù)111if(stristr($param,"pageNum_Recordset1")==false&&stristr($param,"totalRows_Recordset1")==false){112array_push($newParams,$param);113}114}115if(count($newParams)!=0){116//將新的參數(shù)拼接成新的查詢字符串117$queryString_Recordset1="&".htmlentities(implode("&",$newParams));118}119}120121//將分頁參數(shù)和總行數(shù)添加到查詢字符串中122$queryString_Recordset1=sprintf("&totalRows_Recordset1=%d%s",$totalRows_Recordset1,$queryString_Recordset1);123?>124<!doctypehtml>125<html>126<head>127<metacharset="utf-8">128<title>顯示公司留言數(shù)據(jù)</title>129</head>130131<body>132<h2><imgsrc="/image/700.jpg"width="750"height="232"><br>133顯示公司留言數(shù)據(jù)庫134</h2>135<tablewidth="750"border="1">136<tr>137<td>序號</td>138<td><?phpecho$row_Recordset1['ly_id'];?></td>139</tr>140<?phpdo{?>141<!--循環(huán)開始,逐行顯示留言數(shù)據(jù)-->142<tr>143<td>標(biāo)題</td>144<td><?phpecho$row_Recordset1['ly_biaoti'];?></td>145</tr>146<tr>147<td>內(nèi)容</td>148<td><?phpecho$row_Recordset1['ly_neirong'];?></td>149</tr>150<tr>151<td>操作</td>152<!--添加編輯修改鏈接,用于編輯留言數(shù)據(jù)-->153<td><ahref="edit.php?ly_id=<?phpecho$row_Recordset1['ly_id'];?>">編輯修改</a></td>154</tr>155<!--循環(huán)結(jié)束-->156<?php}while($row_Recordset1=mysql_fetch_assoc($Recordset1));?>157</table>158<tableborder="0">159<tr>160<td><?phpif($pageNum_Recordset1>0){//顯示第一頁鏈接?>161<ahref="<?phpprintf("%s?pageNum_Recordset1=%d%s",$currentPage,0,$queryString_Recordset1);?>">第一頁</a>162<?php}//結(jié)束第一頁鏈接?></td>163<td><?phpif($pageNum_Recordset1>0){//顯示前一頁鏈接?>164<ahref="<?phpprintf("%s?pageNum_Recordset1=%d%s",$currentPage,max(0,$pageNum_Recordset1-1),$queryString_Recordset1);?>">前一頁</a>165<?php}//結(jié)束前一頁鏈接?></td>166<td><?phpif($pageNum_Recordset1<$totalPages_Recordset1){//顯示下一頁鏈接?>167<ahref="<?phpprintf("%s?pageNum_Recordset1=%d%s",$currentPage,min($totalPages_Recordset1,$pageNum_Recordset1+1),$queryString_Recordset1);?>">下</a>168<?php}//結(jié)束下一頁鏈接?></td>169<td><?phpif($pageNum_Recordset1<$totalPages_Recordset1){//顯示最后一頁鏈接?>170<ahref="<?phpprintf("%s?pageNum_Recordset1=%d%s",$currentPage,$totalPages_Recordset1,$queryString_Recordset1);?>">最后一頁</a>171<?php}//結(jié)束最后一頁鏈接?></td>172</tr>173</table>174<imgsrc="/image/602.gif"width="750"height="80">175</body>176</html>177<?php178//釋放結(jié)果集占用的內(nèi)存179mysql_free_result($Recordset1);180?>“050201.php”動態(tài)網(wǎng)頁拆分視圖如圖5-3-5所示。

圖5-3-5“050201.php”動態(tài)網(wǎng)頁拆分視圖4.創(chuàng)建設(shè)計“050301.php”動態(tài)網(wǎng)頁(1)鼠標(biāo)單擊“開始”→“動態(tài)網(wǎng)頁”→啟動Dreamweaver軟件,單擊“文件”菜單,單擊“新建”按鈕,創(chuàng)建PHP動態(tài)網(wǎng)頁“050301.php”。(2)網(wǎng)頁屬性中鍵盤輸入網(wǎng)頁標(biāo)題“編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁”。(3)連接MySQL數(shù)據(jù)庫“l(fā)iuyan”(詳細(xì)步驟和示意圖見項目五任務(wù)一)。單擊“窗口”菜單,單擊下拉菜單中“數(shù)據(jù)庫”,單擊“窗口”菜單,單擊下拉菜單中“數(shù)據(jù)庫”。單擊數(shù)據(jù)庫面板標(biāo)簽中“+”按鈕,再單擊“MySQL連接”選項彈出“MySQL連接”對話框,輸入連接名稱、MySQL服務(wù)器、用戶名、密碼,單擊“選取”按鈕,提出選取數(shù)據(jù)庫對話框中選擇數(shù)據(jù)庫“l(fā)iuyan”,單擊“確定”按鈕,返回“MySQL連接”對話框,這時已經(jīng)完成參數(shù)填寫,單擊“測試”按鈕,彈出對話框提示“成功創(chuàng)建連接腳本”,單擊“確定”按鈕,再單擊“確定”按鈕,至此完成了創(chuàng)建MySQL數(shù)據(jù)庫連接的操作。(4)在數(shù)據(jù)庫面板標(biāo)簽中,能看到剛剛創(chuàng)建的PHPMySQL連接。完成此操作后在網(wǎng)站根目錄下,會自動建立目錄Connections,在該目錄中會自動建立PHPMySQL.php文件,打開PHPMySQL.php文件,在源代碼末尾加一句“mysql_set_charset('utf8',$PHPMySQL);”,作用是防止瀏覽器顯示中文時亂碼,見源代碼第12行,修改后請保存并關(guān)閉。1<?php2\#FileName="Connection\_php\_mysql.htm"(文件名="Connection\_php\_mysql.htm")3\#Type="MYSQL"(類型="MYSQL")4\#HTTP="true"(HTTP="true")5$hostname\_PHPMySQL=""; //數(shù)據(jù)庫服務(wù)器的主機名或IP地址6$database\_PHPMySQL="liuyan"; //要連接的數(shù)據(jù)庫名稱7$username\_PHPMySQL="root"; //數(shù)據(jù)庫用戶名8$password\_PHPMySQL="168168"; //數(shù)據(jù)庫密碼9//連接到MySQL數(shù)據(jù)庫服務(wù)器,并選擇指定的數(shù)據(jù)庫10$PHPMySQL=mysql\_pconnect($hostname\_PHPMySQL,$username\_PHPMySQL,$password\_PHPMySQL)ortrigger\_error(mysql\_error(),E\_USER\_ERROR);11//設(shè)置數(shù)據(jù)庫連接的字符集為utf8支持簡體中文12mysql\_set\_charset('utf8',$PHPMySQL);13?>(5)創(chuàng)建綁定記錄集(查詢),單擊數(shù)據(jù)庫標(biāo)簽旁邊的“綁定”標(biāo)簽,單擊“+”按鈕,彈出快捷菜單,單擊其中“記錄集(查詢)”。在快捷工具條中,單擊數(shù)據(jù)標(biāo)簽,單擊其中記錄集按鈕。彈出“記錄集”對話框,名稱默認(rèn)為“Recordset1”,連接處選擇“PHPMySQL”,表格處選擇“l(fā)iuyan”,列處選擇“全部”,篩選選擇“l(fā)y_id”,URL參數(shù)自動填寫“l(fā)y_id”,排序默認(rèn)選擇“無”,單擊“確定”按鈕,如圖5-3-6所示。(6)鼠標(biāo)單擊“窗口”菜單,選擇“插入”選項,調(diào)出插入面板,在插入面板中單擊“數(shù)據(jù)”,單擊“更新記錄:更新記錄向?qū)А卑粹o邊上小黑三角,在彈出菜單中選擇“更新記錄表單向?qū)А边x項,如圖5-3-7所示。(7)彈出對話框更新記錄向?qū)В趯υ捒蛑羞B接處為“PHPMySQL”,要更新的表格為“l(fā)iuyan”,選取記錄自“Recordset1”,唯一鍵列“l(fā)y_id”,在更新后轉(zhuǎn)到處選擇“050201.php”,表單字段處有“+”“-”,鼠標(biāo)單擊“-”按鈕刪除不要的列,僅保留“l(fā)y_biaoti”“l(fā)y_neirong”兩個字段,標(biāo)簽、顯示為、默認(rèn)值保持默認(rèn)不變,單擊“確定”按鈕后網(wǎng)頁中產(chǎn)生表單,如圖5-3-8所示。(8)在表單的前面從文件夾image選擇插入圖片700.jpg,鍵盤輸入組合鍵“Shift+Enter”換行,插入設(shè)置為標(biāo)題2格式<h2></h2>,h2中鍵盤輸入文字“編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁”,選擇圖片700.jpg,修改圖片700.jpg默認(rèn)寬度為750,在表單的下方,從文件夾image選擇插入圖片602.gif,如圖5-3-9所示。(9)光標(biāo)定位表格中,刪除“l(fā)y_biaoti”,鍵盤輸入“標(biāo)題”,刪除“l(fā)y_neirong”,鍵盤輸入“內(nèi)容”。5.“050301.php”網(wǎng)頁源代碼1<?phprequire_once('Connections/PHPMySQL.php');?>2<?php3//檢查函數(shù)'GetSQLValueString'是否已存在4if(!function_exists("GetSQLValueString")){5//定義函數(shù)'GetSQLValueString',用于對數(shù)據(jù)進(jìn)行清理和準(zhǔn)備,以便用于SQL查詢6functionGetSQLValueString($theValue,$theType,$theDefinedValue="",$theNotDefinedValue="")7{8//檢查PHP版本是否小于69if(PHP_VERSION<6){10//如果PHP啟用了'magic_quotes_gpc',則移除值中的斜杠11$theValue=get_magic_quotes_gpc()?stripslashes($theValue)$theValue;12}1314//根據(jù)PHP版本,使用適當(dāng)?shù)暮瘮?shù)對值進(jìn)行轉(zhuǎn)義或轉(zhuǎn)換15$theValue=function_exists("mysql_real_escape_string")?mysql_real_escape_string($theValue)mysql_escape_string($theValue);1617//根據(jù)數(shù)據(jù)類型,為SQL格式化值18switch($theType){19case"text":20//對于文本數(shù)據(jù),在值周圍添加單引號用于SQL21$theValue=($theValue!="")?"'".$theValue."'""NULL";22break;23case"long":24case"int":25//對于整數(shù)數(shù)據(jù),在值不為空時將其轉(zhuǎn)換為整數(shù)類型,否則設(shè)置為NULL26$theValue=($theValue!="")?intval($theValue)"NULL";27break;28case"double":29//對于雙精度數(shù)據(jù),在值不為空時將其轉(zhuǎn)換為浮點數(shù)類型,否則設(shè)置為NULL30$theValue=($theValue!="")?doubleval($theValue)"NULL";31break;32case"date":33//對于日期數(shù)據(jù),在值周圍添加單引號用于SQL34$theValue=($theValue!="")?"'".$theValue."'""NULL";35break;36case"defined":37//對于定義的數(shù)據(jù),根據(jù)情況使用已定義值或未定義值38$theValue=($theValue!="")?$theDefinedValue$theNotDefinedValue;39break;40}41//返回經(jīng)過清理和格式化的值,用于SQL查詢42return$theValue;43}44}4546//設(shè)置表單的提交目標(biāo)為當(dāng)前的PHP文件47$editFormAction=$_SERVER['PHP_SELF'];48//如果URL中有查詢字符串,將其附加到表單的提交目標(biāo)中49if(isset($_SERVER['QUERY_STRING'])){50$editFormAction.="?".htmlentities($_SERVER['QUERY_STRING']);51}5253//如果表單已提交且是正確的表單('form1')54if((isset($_POST["MM_update"]))&&($_POST["MM_update"]=="form1")){55//生成SQL查詢,用于更新'liuyan'表的數(shù)據(jù)56$updateSQL=sprintf("UPDATEliuyanSETly_biaoti=%s,ly_neirong=%sWHEREly_id=%s",57GetSQLValueString($_POST['ly_biaoti'],"text"),58GetSQLValueString($_POST['ly_neirong'],"text"),59GetSQLValueString($_POST['ly_id'],"int"));6061//選擇數(shù)據(jù)庫'PHPMySQL'并連接62mysql_select_db($database_PHPMySQL,$PHPMySQL);63//執(zhí)行SQL查詢,并將結(jié)果存儲在'$Result1'中,如果出現(xiàn)錯誤則顯示錯誤消息64$Result1=mysql_query($updateSQL,$PHPMySQL)ordie(mysql_error());6566//設(shè)置成功更新后的跳轉(zhuǎn)目標(biāo)為'050201.php'67$updateGoTo="050201.php";68//如果URL中有查詢字符串,將其附加到跳轉(zhuǎn)目標(biāo)的URL中69if(isset($_SERVER['QUERY_STRING'])){70$updateGoTo.=(strpos($updateGoTo,'?'))?"&""?";71$updateGoTo.=$_SERVER['QUERY_STRING'];72}73//重定向頁面到指定的位置74header(sprintf("Location%s",$updateGoTo));75}7677//設(shè)置默認(rèn)值為變量'$colname_Recordset1'78$colname_Recordset1="-1";79//如果URL中有'ly_id'參數(shù)(GET請求)80if(isset($_GET['ly_id'])){81//將'$colname_Recordset1'設(shè)置為'ly_id'參數(shù)的值82$colname_Recordset1=$_GET['ly_id'];83}84//選擇數(shù)據(jù)庫'PHPMySQL'并連接85mysql_select_db($database_PHPMySQL,$PHPMySQL);86//生成SQL查詢,用于從'liuyan'表中選擇所有字段,其中'ly_id'匹配'$colname_Recordset1'的值87$query_Recordset1=sprintf("SELECT*FROMliuyanWHEREly_id=%s",GetSQLValueString($colname_Recordset1,"int"));88//執(zhí)行SQL查詢,并將結(jié)果存儲在'$Recordset1'中,如果出現(xiàn)錯誤則顯示錯誤消息89$Recordset1=mysql_query($query_Recordset1,$PHPMySQL)ordie(mysql_error());90//將結(jié)果集的第一行存儲在'$row_Recordset1'中91$row_Recordset1=mysql_fetch_assoc($Recordset1);92//獲取查詢返回的總行數(shù)93$totalRows_Recordset1=mysql_num_rows($Recordset1);94?>9596<!--HTML文檔的開始-->97<!DOCTYPEhtml>98<html">99<head>100<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>101<title>編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁</title>102</head>103104<body>105<!--顯示帶有圖片的標(biāo)題-->106<h2><imgsrc="image/700.jpg"width="750"height="387"/>107<br/>108編輯留言數(shù)據(jù)動態(tài)網(wǎng)頁<br/>109</h2>110<!--創(chuàng)建表單,用于編輯留言數(shù)據(jù),提交目標(biāo)設(shè)置為當(dāng)前的PHP文件-->111<formaction="<?phpecho$editFormAction;?>"method="post"name="form1"id="form1">112<tablealign="center">113<trvalign="baseline">114<tdnowrap="nowrap"align="right">Ly_biaoti:</td>115<!--創(chuàng)建輸入字段,用于'ly_biaoti',值從'liuyan'表中填充-->116<td><inputtype="text"name="ly_biaoti"value="<?phpechohtmlentities($row_Recordset1['ly_biaoti'],ENT_COMPAT,'utf-8');?>"size="32"/></td>117</tr>118<trvalign="baseline">119<tdnowrap="nowrap"align="right">Ly_neirong:</td>120<!--創(chuàng)建輸入字段,用于'ly_neirong',值從'liuyan'表中填充-->121<td><inputtype="text"name="ly_neirong"value="<?phpechohtmlentities($row_Recordset1['ly_neirong'],ENT_COMPAT,'utf-8');?>"size="32"/></td>122</tr>123<trvalign="baseline">124<tdnowrap="nowrap"align="right"> </td>125<td><inputtype="submit"value="編輯修改保存記錄"/></td>126</tr>127</table>128<!--創(chuàng)建隱藏輸入字段,用于傳遞更新操作所需的數(shù)據(jù)-->129<inputtype="hidden"name="MM_update"value="form1"/>130<inputtype="hidden"name="ly_id"value="<?phpecho$row_Recordset1['ly_id'];?>"/>131</form>132<!--顯示帶有圖片的標(biāo)題-->133<h2><br/>134<imgsrc="image/602.gif"width="750"height="80"/>135</h2>136<p> </p>137</body>138</html>139<?php140//釋放結(jié)果集占用的內(nèi)存141mysql_free_result($Recordset1);142?>1.用PHP在MySQL數(shù)據(jù)庫中讀取數(shù)據(jù)當(dāng)PHP連接到MySQL數(shù)據(jù)庫后,需要向數(shù)據(jù)庫讀取數(shù)據(jù),那么怎么讀取呢?我們一起來看看。從MySQL數(shù)據(jù)庫讀取數(shù)據(jù),可以使用SELECT語句。語句格式:SELECT*FROM表名SELECTcolumn_name(s)FROMtable_name語句中SELECT表示選擇要執(zhí)行查詢命令,星號(*)是一個通配符,用于表示選擇所有列。在SELECT語句中,如果使用了星號(*),那么查詢將會返回選定表中的所有列的數(shù)據(jù),而不需要逐個列出列名;如不想要表的全部字段,不使用星號(*)來選擇所有列時,也可在星號(*)這個位置直接列出具體表的字段,用逗號分隔字段的方式列出查詢的指定列名,這樣可以更精確地控制獲取的數(shù)據(jù)。FROM子句后面跟具體表名,表示要對哪個表進(jìn)行SELECT。例如“ex5301.php”代碼采用面向?qū)ο驧ySQLi方式連接數(shù)據(jù)庫,并用SELECT查詢“guanliyuan”表,把SELECT查詢檢索管理員信息結(jié)果顯示在頁面上。1<!DOCTYPEhtml>2<html>3<head>4 <metacharset="utf-8">5 <title>面向?qū)ο驧ySQLi方式連接數(shù)據(jù)庫并用SELECT查詢guanliyuan表顯示</title>6</head>7<body>8<?php9$servername="localhost"; //數(shù)據(jù)庫服務(wù)器的主機名或IP地址10$username="root"; //數(shù)據(jù)庫用戶名11$password="168168"; //數(shù)據(jù)庫密碼12$dbname="liuyan"; //數(shù)據(jù)庫名13//創(chuàng)建連接14$conn=newmysqli($servername,$username,$password,$dbname);15//檢測連接16if($conn->connect_error){17die("Connectionfailed:".$conn->connect_error);//如果連接失敗,輸出錯誤信息并終止腳本18}19$sql="SELECTgly_id,gly_yonghuming,gly_mima,gly_jibieFROMguanliyuan";//定義要執(zhí)行的SQL查詢語句20$result=$conn->query($sql);//執(zhí)行查詢,并將結(jié)果存儲在$result變量中21if($result->num_rows>0){22//輸出每行數(shù)據(jù)23while($row=$result->fetch_assoc()){24echo"<br>ID:".$row["gly_id"]."<br>Username:".$row["gly_yonghuming"]."<br>Password:".$row["gly_mima"]."<br>Level:".$row["gly_jibie"]."<br>";25 //輸出每行數(shù)據(jù)的管理員ID、用戶名、密碼和級別26}27}else{28echo"0results"; //如果查詢結(jié)果中沒有數(shù)據(jù),輸出"0results"29}30$conn->close(); //關(guān)閉數(shù)據(jù)庫連接31?>32</body>33</html>例如“ex5302.php”代碼通過PDO連接到數(shù)據(jù)庫服務(wù)器,并用SELECT查詢“guanliyuan”表,把SELECT查詢檢索管理員信息結(jié)果顯示在頁面上。1<!DOCTYPEhtml>2<html>3<head>4 <metacharset="utf-8">5 <title>采用PDO方式連接數(shù)據(jù)庫并用SELECT查詢guanliyuan表顯示</title>6</head>7<body>8<?php9$servername="localhost"; //數(shù)據(jù)庫服務(wù)器的主機名或IP地址10$username="root"; //數(shù)據(jù)庫用戶名11$password="168168"; //數(shù)據(jù)庫密碼12$dbname="liuyan"; //數(shù)據(jù)庫名13try{14//使用PDO連接數(shù)據(jù)庫15$conn=newPDO("mysql:host=$servername;dbname=$dbname",$username,$password);16$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);17//構(gòu)建查詢語句18$sql="SELECTgly_id,gly_yonghuming,gly_mima,gly_jibieFROMguanliyuan";19$stmt=$conn->query($sql);20//判斷是否有查詢結(jié)果21if($stmt->rowCount()>0){22//循環(huán)遍歷查詢結(jié)果集23while($row=$stmt->fetch(PDO::FETCH_ASSOC)){24//輸出管理員信息25echo"<br>ID:".$row["gly_id"]."<br>Username:".$row["gly_yonghuming"]."<br>Password:".$row["gly_mima"]."<br>Level:".$row["gly_jibie"]."<br>";26}27}else{28echo"0results";//輸出無結(jié)果信息29}30}catch(PDOException$e){31//捕獲連接異常并輸出錯誤信息32echo"Connectionfailed:".$e->getMessage();33}34//關(guān)閉數(shù)據(jù)庫連接35$conn=null;36?>37</body>38</html>源代碼第9~12行定義變量存儲連接數(shù)據(jù)庫關(guān)鍵參數(shù)。第1~33行使用PHP的異常處理機制(try-catch語句)來連接數(shù)據(jù)庫、執(zhí)行查詢和處理查詢結(jié)果。第15行使用PDO連接數(shù)據(jù)庫,通過傳入數(shù)據(jù)庫服務(wù)器主機名、數(shù)據(jù)庫名、用戶名和密碼來創(chuàng)建連接。第16行設(shè)置PDO連接的錯誤處理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論