




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、案例 簡易網(wǎng)上書店之購物車設(shè)計(jì)一、概述當(dāng)會(huì)員從圖書顯示頁面選擇了所購圖書并填寫了購書的數(shù)量后,就要把書放入購物車中。購物車就是記錄存放會(huì)員暫時(shí)選定圖書的數(shù)據(jù)表,對這個(gè)數(shù)據(jù)表的操作包括添加、更改、刪除和查詢。當(dāng)把選中的圖書放入購物車時(shí),就是向數(shù)據(jù)庫添加數(shù)據(jù);當(dāng)查看購物車時(shí),就是把數(shù)據(jù)庫中的數(shù)據(jù)讀出來,按一定的格式顯示在瀏覽器上;當(dāng)刪除不想要的圖書或更改購書的數(shù)量時(shí),就是刪除或更改數(shù)據(jù)表中的數(shù)據(jù);當(dāng)重新購物時(shí),就要清除數(shù)據(jù)表中的數(shù)據(jù)。二、系統(tǒng)架構(gòu)對購物車的操作發(fā)生在選中圖書之后。建立一個(gè)數(shù)據(jù)表記錄會(huì)員選購的圖書信息。當(dāng)進(jìn)入圖書顯示頁面,選定了想要的圖書后,要更新數(shù)據(jù)表中的數(shù)據(jù)。查看購物車,除了顯示
2、數(shù)據(jù)表中與會(huì)員有關(guān)的圖書信息外,還提供變更購書數(shù)量和取消不想要的圖書的表單,并交給相關(guān)程序處理。在查看購物車頁面也提供結(jié)算的入口。同時(shí)定單也要從確定的購物車中提取數(shù)據(jù)。因此,購物車頁面應(yīng)該具有以下功能:1添加購物車。2查看購物車。3修改購物車。4清除購物車。本案例的工作流程圖如圖1所示。Web服務(wù)器會(huì)員從顯示頁面請求放入購物車數(shù)據(jù)庫服務(wù)器添加到購物車處理顯示圖書頁面查看購物車頁面定單結(jié)算頁面修改購書信息清除購物車圖1說明:1會(huì)員從圖書顯示頁面選定圖書,請求加入購物車;2處理了添加后,會(huì)員的去向可能是繼續(xù)購書,那就回到顯示頁面,也可能想查看購物車,那就進(jìn)入到查看購物車頁面;3進(jìn)入查看購物車頁面后
3、,會(huì)員能瀏覽到所選圖書的信息,同時(shí)還能修改購書信息,也能選擇繼續(xù)購書,或結(jié)賬;4清除購物車是在購物結(jié)束時(shí)發(fā)生。三、系統(tǒng)設(shè)計(jì)1邏輯結(jié)構(gòu)設(shè)計(jì)根據(jù)對系統(tǒng)的功能描述,可得如圖2所示的系統(tǒng)邏輯結(jié)構(gòu)圖。修改購書處理updatechat.php刪除選中的圖書更新修改的購書數(shù)量查看購物車 Checkchat.php顯示購書的信息修改購物數(shù)量或取消控制轉(zhuǎn)向加入購物車頁面addchat.php追加記錄控制轉(zhuǎn)向顯示圖書頁面nowbook.php表單:submit定單結(jié)算buybook.php表單:submit清空購物車clear.php刪除購物車中的所有圖書退出購物頁面圖22數(shù)據(jù)庫設(shè)計(jì)在MySQL數(shù)據(jù)庫服務(wù)器上名為
4、bookshop數(shù)據(jù)庫內(nèi)建立數(shù)據(jù)表buychat ,各字段的定義和說明如下。表buychat字段類型NULL說明備注buyidInt(11)否購書序列號auto_incrementuseridchar(30)否會(huì)員登錄idbookidInt(11)否書號buynumInt(11)是購買數(shù)量buypricefloat否購買價(jià)格buystatusvarchar(2)否購買狀態(tài)f注:通過phpMyadmin建立,在MySQL的data文件夾中會(huì)自動(dòng)創(chuàng)建以此數(shù)據(jù)庫為名的文件夾,包含相關(guān)數(shù)據(jù)。3 界面設(shè)計(jì)添加購物車頁面:addchat.php標(biāo)題行繼續(xù)購書(submit)查看購物車(submit)查看購
5、物車:checkchat.php標(biāo)題行提示信息欄取消書名出版社價(jià)格購買數(shù)量合計(jì)表單(復(fù)選框)表單(文本框)提示語:取消某本書或修改了購書數(shù)量后,單擊“修改”按鈕修改(submit)還要賣(submit)結(jié)賬(submit)狀態(tài)提示欄:購書數(shù)量不能為0,請修改。四、編碼實(shí)現(xiàn)1添加購物車頁面:addchat.php?session_start();/創(chuàng)建會(huì)話$userid=$_SESSIONuserid; /使用會(huì)話變量include(sys_conf.inc); /建立與SQL數(shù)據(jù)庫的連接$connection=mysql_connect($DBHOST,$DBUSER,$DBPWD) or d
6、ie(無法連接數(shù)據(jù)庫!);mysql_query(set names gb2312);mysql_select_db(bookshop) or die(無法選擇數(shù)據(jù)庫!);$query=SELECT * FROM bookinf order by bookid;$result=mysql_query($query,$connection) or die(讀取數(shù)據(jù)失??!1);$query=SELECT * FROM buychat where userid=$userid order by bookid ;$result2=mysql_query($query,$connection) or d
7、ie(讀取數(shù)據(jù)失?。?);$i=1;while($row2=mysql_fetch_array($result2)$bc$ibookid=$row2bookid;$bc$ibuynum=$row2buynum;$i+;$count=1;while($row=mysql_fetch_array($result)if($bookbm$count=sel ) if($buynum$count=) $buynum$count=0;$p=0;for($j=1;$j 成功選購! -addchat.php-代碼解讀1)獲取會(huì)話變量會(huì)員idsession_start(); 要把在登錄時(shí)創(chuàng)建的會(huì)話變量(會(huì)員id
8、)取出,必須先創(chuàng)建會(huì)話;$userid=$_SESSIONuserid; 獲取會(huì)話變量,將在數(shù)據(jù)庫操作中使用;2)包含數(shù)據(jù)庫服務(wù)器配置變量文件使用include()函數(shù)把數(shù)據(jù)庫服務(wù)器配置變量文件包括在程序中。include()函數(shù)的參數(shù)是公共文件sys_conf.inc,用于設(shè)置系統(tǒng)使用的數(shù)據(jù)庫全局變量。3)寫入或修改購物車中的數(shù)據(jù)這個(gè)部分相對復(fù)雜些,主要算法是:包含數(shù)據(jù)庫服務(wù)器配置數(shù)據(jù)文件連接數(shù)據(jù)庫服務(wù)器設(shè)置數(shù)據(jù)庫服務(wù)器處理的字符集,以處理漢字在瀏覽器上的顯示打開數(shù)據(jù)庫bookbook讀取數(shù)據(jù)表bookinf中的數(shù)據(jù)賦予變量$result讀取數(shù)據(jù)表buychat中指定會(huì)員的的數(shù)據(jù)并賦予變量$
9、result2依次提取字段bookid和booknum中的值依次提取數(shù)據(jù)表bookinf中記錄;對被選中的記錄如果沒有填寫數(shù)量,就設(shè)置為0;如果已經(jīng)在數(shù)據(jù)表buychat中,就修改它的數(shù)量;如果不在數(shù)據(jù)表buychat中,就把相關(guān)圖書信息插入在表尾;關(guān)閉數(shù)據(jù)庫連接。 4)用HTML編寫在瀏覽器上顯示的添加購物車頁面注意:繼續(xù)購書的提交按鈕表單交給newbook.php處理,而查看購物車按鈕表單交給checkchat.php處理。5)這段代碼中用到的SQL命令命令格式含義set names gb2312設(shè)置字符處理集為gb2312SELECT * FROM bookinf order by bo
10、okid獲取數(shù)據(jù)表bookinf的所有記錄SELECT * FROM buychat where userid=$userid order by bookid獲取數(shù)據(jù)表bookchat中與登錄會(huì)員相關(guān)的所有記錄UPDATE buychat set buynum=$buynu where (bookid =$count and userid=$userid)更新數(shù)據(jù)表buychat中登錄會(huì)員指定書號的購書數(shù)量INSERT INTO buychat(buynum,buyprice,userid,buystatus, bookid)VALUES ($buynu,$rowpriceyh,$userid
11、, f,$count )把登錄會(huì)員當(dāng)前的購書信息插入到數(shù)據(jù)表buychat中6)程序中用到的變量變量名取值含義$userid字符串記錄會(huì)員ID$connection整數(shù),標(biāo)識(shí)連接數(shù)據(jù)庫的句柄記錄連接數(shù)據(jù)庫德指針$querySQL命令記錄SQL命令$result,$result2查詢數(shù)據(jù)集記錄執(zhí)行SQL命令后的返回結(jié)果$count整數(shù)記錄書號$row,$row2數(shù)組記錄查詢數(shù)據(jù)集中的一條記錄$bc查詢數(shù)據(jù)集中的值,二維數(shù)組記錄查詢結(jié)果數(shù)據(jù)集的值$bookbm數(shù)組記錄對每本書的選購狀態(tài)$buynum數(shù)組記錄對每本書的選購數(shù)量$p邏輯值(0/1)0-已經(jīng)記錄在購物車上$i,$j整數(shù)記錄查詢數(shù)據(jù)集中的
12、記錄指針7)程序中用到的函數(shù)函數(shù)用法含義count()參數(shù)取數(shù)組型統(tǒng)計(jì)數(shù)組中元素的個(gè)數(shù)mysql_connect()三個(gè)參數(shù)分別是服務(wù)器名,會(huì)員名,會(huì)員密碼連接到指定的數(shù)據(jù)庫服務(wù)器上,訪問會(huì)員建立的數(shù)據(jù)庫die()參數(shù)取字符串型返回字符串的信息,錯(cuò)誤警報(bào)mysql_query()參數(shù)為SQL命令執(zhí)行SQL命令mysql_select_db()參數(shù)為數(shù)據(jù)庫名打開數(shù)據(jù)庫文件mysql_fetch_array()參數(shù)為字符串以數(shù)組返回查詢數(shù)據(jù)集中的記錄mysql_close()參數(shù)為標(biāo)識(shí)連接數(shù)據(jù)庫的句柄關(guān)閉數(shù)據(jù)庫文件2查看購物車:checkchat.php 查詢購物車 購物車清單:以下是你所選購的圖
13、書,你可以修改購買的數(shù)量或取消! 取消 書名出版社價(jià)格購買數(shù)量合計(jì)? for($j=1;$j=count($bc);$j+) echo ; echo ; echo .$bc$jbookname. ; echo .$bc$jpublisher. ; echo .$bc$jbuyprice. ; echo ; echo . $bc$jbuyprice *$bc$j buynum. ; echo ; ? 取消某本書或修改了購書數(shù)量后,單擊“修改”按鈕 - checkchat.php-代碼解讀1)獲取會(huì)話變量會(huì)員idsession_start(); 要把在登錄時(shí)創(chuàng)建的會(huì)話變量(會(huì)員id)取出,必須先創(chuàng)
14、建會(huì)話;$userid=$_SESSIONuserid; 獲取會(huì)話變量,將在數(shù)據(jù)庫操作中使用;2)寫入或修改購物車中的數(shù)據(jù)這個(gè)部分程序的算法是:包含數(shù)據(jù)庫服務(wù)器配置數(shù)據(jù)文件連接數(shù)據(jù)庫服務(wù)器設(shè)置數(shù)據(jù)庫服務(wù)器處理的字符集,以處理漢字在瀏覽器上的顯示打開數(shù)據(jù)庫bookbook讀取數(shù)據(jù)表buychat中指定會(huì)員的數(shù)據(jù)并賦予變量$result讀取數(shù)據(jù)表bookinft中的數(shù)據(jù)并賦予變量$result2依次提取數(shù)據(jù)集$result字段buyprice、booknum 和bookid中的值賦給數(shù)組變量$bc依次提取數(shù)據(jù)集$result2與數(shù)據(jù)集$result中字段bookid相同的記錄的字段bookname
15、、publisher中的值賦給數(shù)組變量$bc如果購買數(shù)量為0,設(shè)置要求修改的信息;關(guān)閉數(shù)據(jù)庫連接。3)用HTML制作查看購物車頁面其中三個(gè)提交按鈕對應(yīng)的處理程序分別是:修改:updatechat.php,還要買:newbook.php,結(jié)賬:buybook.php。在上方的提示信息行中用到了會(huì)話變量$_SESSIONuserid。4)程序中用到的SQL命令命令格式含義SELECT * FROM buychat where userid=$userid order by bookid 獲取數(shù)據(jù)表buychat中當(dāng)前登錄會(huì)員的所有記錄SELECT * FROM bookinf order by b
16、ookid獲取數(shù)據(jù)表bookinf中的所有記錄5)程序中用到的變量變量名取值含義$userid字符串記錄會(huì)員ID$connection整數(shù),標(biāo)識(shí)連接數(shù)據(jù)庫的句柄記錄連接數(shù)據(jù)庫德指針$querySQL命令記錄SQL命令$result查詢數(shù)據(jù)集記錄執(zhí)行SQL命令后的返回結(jié)果$count,$j整數(shù)記錄書號$row數(shù)組記錄查詢數(shù)據(jù)集中的一條記錄$bc查詢數(shù)據(jù)集中的值,二維數(shù)組記錄查詢結(jié)果數(shù)據(jù)集的值buyid數(shù)組(表單中)記錄對每本書的取消狀態(tài)buynum數(shù)組(表單中)記錄對每本書的選購數(shù)量$errmsgnum字符串記錄購物數(shù)量為0時(shí)的提示修改信息5)程序中用到的函數(shù)函數(shù)用法含義count()參數(shù)取數(shù)組
17、型統(tǒng)計(jì)數(shù)組中元素的個(gè)數(shù)mysql_connect()三個(gè)參數(shù)分別是服務(wù)器名,會(huì)員名,會(huì)員密碼連接到指定的數(shù)據(jù)庫服務(wù)器上,訪問會(huì)員建立的數(shù)據(jù)庫die()參數(shù)取字符串型返回字符串的信息,錯(cuò)誤警報(bào)mysql_query()參數(shù)為SQL命令執(zhí)行SQL命令mysql_select_db()參數(shù)為數(shù)據(jù)庫名打開數(shù)據(jù)庫文件mysql_fetch_array()參數(shù)為字符串以數(shù)組返回查詢數(shù)據(jù)集中的記錄mysql_close()參數(shù)為標(biāo)識(shí)連接數(shù)據(jù)庫的句柄關(guān)閉數(shù)據(jù)庫文件3修改購物車:updatechat.php?session_start();$userid=$_SESSIONuserid; include(sys
18、_conf.inc); /建立與SQL數(shù)據(jù)庫的連接$connection=mysql_connect($DBHOST,$DBUSER,$DBPWD) or die(無法連接數(shù)據(jù)庫!);mysql_query(set names gb2312);mysql_select_db(bookshop) or die(無法選擇數(shù)據(jù)庫!);$query=SELECT * FROM buychat where userid=$userid;$result=mysql_query($query,$connection) or die(讀取數(shù)據(jù)失??!);$count=1;while($row=mysql_fet
19、ch_array($result)if($buyid$count=del)$query=DELETE FROM buychat where buyid=$count and userid=$userid;mysql_query($query,$connection) or die(刪除購物車數(shù)據(jù)失敗!1);if($buynum$count$rowbuynum)$query=UPDATE buychat set buynum=$buynum$count where buyid=$countand userid=$userid;mysql_query($query,$connection) or
20、die(修改購物車數(shù)據(jù)失??!2);$count+;$sql=alter TABLE buychat drop buyid;mysql_query($sql,$connection);$sql=alter TABLE buychat add buyid int auto_increment primary key;mysql_query($sql,$connection);mysql_close($connection) or die(無法斷開與數(shù)據(jù)庫的連接);/頁面重定向echo ;echo location=checkchat.php;echo ;? -updatechat.php-代碼解讀
21、這段代碼實(shí)現(xiàn)以下功能:1)獲取會(huì)話變量會(huì)員idsession_start(); 要把在登錄時(shí)創(chuàng)建的會(huì)話變量(會(huì)員id)取出,必須先創(chuàng)建會(huì)話;$userid=$_SESSIONuserid; 獲取會(huì)話變量,將在數(shù)據(jù)庫操作中使用;2)寫入或修改購物車中的數(shù)據(jù)這個(gè)部分相對復(fù)雜些,主要算法是:包含數(shù)據(jù)庫服務(wù)器配置數(shù)據(jù)文件連接數(shù)據(jù)庫服務(wù)器設(shè)置數(shù)據(jù)庫服務(wù)器處理的字符集,以處理漢字在瀏覽器上的顯示打開數(shù)據(jù)庫bookbook讀取數(shù)據(jù)表buychat中指定會(huì)員的數(shù)據(jù)并賦予變量$result對于查詢數(shù)據(jù)集$result中的每一條記錄若被取消則從數(shù)據(jù)表buychat中刪除;若輸入的購買數(shù)量與數(shù)據(jù)表中bnum字段的值
22、不等則用輸入的數(shù)值替代bnum字段的值;把購書序列號重新設(shè)置為從1開始的連續(xù)數(shù)字刪除字段buyid添加字段buyid,其屬性是整數(shù)、主鍵和字段增加關(guān)閉數(shù)據(jù)庫連接。 頁面重定向回checkchat.php這是利用JavaScript編寫的。3)用HTML制作添加購物車頁面注意:繼續(xù)購書的提交按鈕表單交給newbook.php處理,而查看購物車按鈕表單交給checkchat.php處理。5)程序中用到的SQL命命令格式含義SELECT * FROM buychat where userid=$userid獲取數(shù)據(jù)表buychat中當(dāng)前登錄會(huì)員的所有記錄DELETE FROM buychat whe
23、re buyid=$count and userid=$userid刪除數(shù)據(jù)表buychat中當(dāng)前登錄會(huì)員已經(jīng)取消的圖書UPDATE buychat set buynum=$buynum$count where buyid=$countand userid=$userid更新數(shù)據(jù)表buychat中當(dāng)前登錄會(huì)員已經(jīng)修改的購書數(shù)量alter table buychat drop buyid刪除數(shù)據(jù)表buychat中的字段buyidalter table buychat add buyid int auto_increment primary key添加字段buyid到數(shù)據(jù)表buychat中5)程序中用到
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 陜西省安康市2024-2025學(xué)年高三下學(xué)期第二次質(zhì)量考試(二模)地理試題(含答案)
- 企業(yè)對外溝通與合作記錄表
- 鄉(xiāng)村旅游規(guī)劃設(shè)計(jì)服務(wù)協(xié)議
- 產(chǎn)品保密與知識(shí)產(chǎn)權(quán)保護(hù)契約書
- 倒裝句的構(gòu)成與識(shí)別:英語語法知識(shí)鞏固教案
- 鄉(xiāng)村土地承包經(jīng)營獎(jiǎng)補(bǔ)資金使用協(xié)議
- 二手房買賣過戶網(wǎng)簽協(xié)議
- 健康飲食品牌推廣合同書
- 本季度銷售業(yè)績匯報(bào)與展望
- 高體三教授治療眩暈病學(xué)術(shù)思想研究
- 《元德秀字紫芝》2019年山東濰坊中考文言文閱讀真題(含答案與翻譯)
- 建設(shè)“三型三化551”財(cái)務(wù)體系加快財(cái)務(wù)轉(zhuǎn)型創(chuàng)建一流財(cái)務(wù)指導(dǎo)意見
- 語言領(lǐng)域核心經(jīng)驗(yàn)《學(xué)前兒童語言學(xué)習(xí)與發(fā)展核心經(jīng)驗(yàn)》
- 湖北省華中師大一附中2020-2021高一物理期中檢測試卷【含答案】
- 2021年合肥職業(yè)技術(shù)學(xué)院職業(yè)適應(yīng)性測試試題及答案解析
- 2022年三年級美術(shù)下冊教案課題美化教室一角
- 初中物理公式MicrosoftWord文檔
- 詐騙案件授課PPT課件
- 弗洛姆異化理論
- 碳納米管_ppt課件
- 【課件】第2課如何鑒賞美術(shù)作品課件-高中美術(shù)人教版(2019)美術(shù)鑒賞
評論
0/150
提交評論