日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
寫給產(chǎn)品經(jīng)理及UI設(shè)計(jì)師的PHP教程丨文章管理系統(tǒng)創(chuàng)建欄目

開始學(xué)習(xí)之前希望大家先下載DREAMWEAVER,我想有不少產(chǎn)品汪和設(shè)計(jì)喵都曾用過這個(gè)軟件吧。估計(jì)很多程序猿同學(xué)會(huì)吐槽寫代碼還用DREAMWEAVER也太業(yè)余了吧。你通過一個(gè)編輯器碼一個(gè)表格到代碼里需要手寫好多行代碼,但我們?cè)贒W里簡(jiǎn)簡(jiǎn)單單的按幾下按鈕就可以了。況且這個(gè)教程不光只是學(xué)習(xí)PHP而已,HTML,CSS,JAVASCRIPT,AJAX,XML等各種需要用于網(wǎng)站開發(fā)的語言都會(huì)穿插著學(xué)習(xí)。所以DW應(yīng)該是最好的選擇了。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供全州網(wǎng)站建設(shè)、全州做網(wǎng)站、全州網(wǎng)站設(shè)計(jì)、全州網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、全州企業(yè)網(wǎng)站模板建站服務(wù),10年全州做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。需求簡(jiǎn)述:

可以發(fā)布文章到指定欄目,并且可以管理欄目及文章,對(duì)其進(jìn)行修改,刪除,查看等操作。

我想一般客戶提需求程度也就是上面這個(gè)程度了。作為產(chǎn)品汪的我們當(dāng)然要開始細(xì)化這個(gè)需求了。但畢竟這只是教程,不是現(xiàn)實(shí),我們就不要把需求整的太復(fù)雜了哈。

好了,我們來思考一下。滿足一個(gè)這樣的需求要開發(fā)哪些功能。

功能列表:

一、 欄目管理

1. 創(chuàng)建欄目:可以輸入欄目名稱并提交。

2. 修改欄目:可以指定修改已發(fā)布的欄目名稱并保存。

3. 刪除欄目:可以指定刪除已發(fā)布的欄目。

4. 欄目列表:以列表的形式顯示已發(fā)布的欄目。(顯示內(nèi)容:欄目名稱,更新時(shí)間)

二、文章管理

1. 創(chuàng)建文章:可以發(fā)布文章到指定欄目。(選擇欄目,輸入標(biāo)題,輸入正文)

2. 修改文章:可以指定修改已發(fā)布的文章并保存。(修改欄目,修改標(biāo)題,修改正文)

3. 刪除文章:可以指定刪除已發(fā)布的文章。

4. 文章列表:以列表的形式顯示已發(fā)布的文章。(欄目名稱,文章標(biāo)題,發(fā)布時(shí)間,更新時(shí)間)

5. 列表分頁:對(duì)文章列表進(jìn)行翻頁查看。

以上這些功能就是第二章要學(xué)習(xí)的內(nèi)容了。

本節(jié)內(nèi)容為了提高大家的興趣,能讓大家感受到從無到有的成就感,所以一口氣會(huì)講很多知識(shí)點(diǎn),希望大家耐心點(diǎn)。

好了,我們就從創(chuàng)建欄目開始吧。

相信很多人也都知道,數(shù)據(jù)傳上去會(huì)存放在數(shù)據(jù)庫里。所以在這里先科普一下數(shù)據(jù)庫的知識(shí)。

MYSQL數(shù)據(jù)庫

數(shù)據(jù)庫顧名思義就是存放數(shù)據(jù)的倉庫。

這個(gè)倉庫我們可以理解成有3個(gè)層級(jí)的結(jié)構(gòu)。1. 數(shù)據(jù)庫 2. 數(shù)據(jù)表 3. 字段

一個(gè)數(shù)據(jù)庫包含多個(gè)數(shù)據(jù)表,一個(gè)數(shù)據(jù)表又包含多個(gè)字段。

我們可以通過EXCEL來形象的比喻出數(shù)據(jù)庫的結(jié)構(gòu)。

數(shù)據(jù)庫=EXCEL文檔,數(shù)據(jù)表=EXCEL工作表,字段=EXCEL中的列。(如下圖所示)

創(chuàng)建數(shù)據(jù)庫、表、字段

想要?jiǎng)?chuàng)建欄目并把對(duì)應(yīng)數(shù)據(jù)發(fā)布到數(shù)據(jù)庫里,我們就得先準(zhǔn)備好對(duì)應(yīng)的數(shù)據(jù)庫、表、字段。

打開瀏覽器輸入 http://127.0.0.1/phpmyadmin/

輸入用戶名:root以及我們之前在安裝的時(shí)候設(shè)置過的數(shù)據(jù)庫密碼,點(diǎn)擊執(zhí)行按鈕登錄PHPMYADMIN。登錄后界面如下。

在新建數(shù)據(jù)庫的位置輸入study,下拉選項(xiàng)選擇utf_general_ci,點(diǎn)擊創(chuàng)建按鈕創(chuàng)建我們的數(shù)據(jù)庫。

其中study是我們的數(shù)據(jù)庫名,utf8_general_ci是數(shù)據(jù)庫的語言編碼結(jié)構(gòu),也是目前最流行的編碼結(jié)構(gòu)。當(dāng)然除了這個(gè)選項(xiàng)以外還有g(shù)b2312等各種各樣的語言選項(xiàng),不過utf-8是目前支持多國語言支持的比較完美的一個(gè)編碼。如gb2312就只能支持簡(jiǎn)體中文和英文。關(guān)于這一點(diǎn)一般無特殊需求也不會(huì)選擇其他類型,所以也不講太多了,只要知道以后都選擇這個(gè)就可以了。

創(chuàng)建成功會(huì)進(jìn)入如下界面

下一步在study數(shù)據(jù)庫中創(chuàng)建存儲(chǔ)欄目數(shù)據(jù)的表。創(chuàng)建之前先回顧一下我們的需求,欄目列表中需要顯示的數(shù)據(jù)有欄目名稱和更新時(shí)間。欄目名稱和更新時(shí)間都是一個(gè)獨(dú)立的字段。大家可能馬上就能聯(lián)想到字段數(shù)2。但是一般數(shù)據(jù)表里的字段結(jié)構(gòu)除了我們可以在界面中看到的信息字段以外,還有一些為了保證程序運(yùn)行而存在的一些在界面中看不到的隱形字段。其中id字段就是一個(gè)典型的例子。絕大多數(shù)的數(shù)據(jù)表都會(huì)有一個(gè)叫id的字段,id就等同于是每一條數(shù)據(jù)的身份證,我們每個(gè)人都有身份證,并且身份證號(hào)是唯一的,在公安系統(tǒng)里通過身份證號(hào)可以準(zhǔn)確的查詢到我們每一個(gè)人的詳細(xì)信息。如果有同樣的身份證號(hào)會(huì)怎么樣?那不就分不清誰是誰了嗎?id字段就是起一個(gè)這樣的作用。

數(shù)據(jù)表名字輸入category,字段數(shù)輸入3,點(diǎn)擊執(zhí)行按鈕,創(chuàng)建數(shù)據(jù)表。

數(shù)據(jù)表創(chuàng)建成功會(huì)進(jìn)入如下界面。

字段類型(INT、VARCHAR、DATETIME)

在上圖中我們可以看到,需要輸入字段的地方有三列。每一列都是一個(gè)字段及他的相關(guān)屬性。

如下圖所示,輸入相關(guān)信息。其中第一行字段名稱,第二行是字段類型,第三行是字段值的長(zhǎng)度,另外要注意AUTO_INCREMENT這行,第一個(gè)字段要打勾。

點(diǎn)擊保存按鈕,字段創(chuàng)建成功,進(jìn)入如下界面。

字段名就不用多說了,估計(jì)大家一看就知道每個(gè)名稱代表的意思了。我們來說說字段類型。

INT類型:

INT基本可以理解成是整數(shù)就可以了,就是1,2,3,4,5這種沒有小數(shù)點(diǎn)的整數(shù)??赡艹绦蛟惩瑢W(xué)又會(huì)吐槽這里應(yīng)該用tinyint類型什么的。確實(shí)MYSQL中INT類型就有好幾種,不同的類型可存儲(chǔ)的數(shù)據(jù)大小不一樣。大小越小運(yùn)行計(jì)算的速度就會(huì)越快。但是我們又不是在開發(fā)淘寶,優(yōu)化的那么牛X做什么呀?在這里大家就先記住,想要存儲(chǔ)的類型為整數(shù)的時(shí)候就選擇INT類型就可以了。

VARCHAR類型:

VARCHAR是用于存儲(chǔ)字符串的,存儲(chǔ)字符串一般常見的類型有CHAR、VARCHAR和TEXT類型。每種類型能存儲(chǔ)的字符長(zhǎng)度都是有限制,3個(gè)中CHAR最小,其次是VARCHAR,TEXT是的。這里也不需要太深入的了解,就記得一般標(biāo)題啊摘要之類文字相對(duì)較少的時(shí)候就選擇VARCHAR,正文選擇TEXT類型就可以了。

DATETIME類型:

嘿,這個(gè)估計(jì)看名字就知道了,日期時(shí)間嗎!非常正確,就是日期和時(shí)間。存儲(chǔ)的格式是:2015-10-22 15:30:45 。該字段的時(shí)間存儲(chǔ)范圍為 ‘1000-01-01 00:00:00′ 到 ‘9999-12-31 23:59:59′ 。通過范圍可以看出如果你有一些特殊的需求,需要一個(gè)什么歷史悠久的時(shí)間或者1萬年以后的時(shí)間是不可能的。當(dāng)然我想大家一般也不會(huì)有這么奇葩的需求,所以時(shí)間類型的字段選擇這個(gè)就可以了。

字段長(zhǎng)度:

接下來講講zi字段長(zhǎng)度的問題。長(zhǎng)度就是限制你可存儲(chǔ)的字符值。就算不設(shè)長(zhǎng)度每個(gè)字段也都有他的長(zhǎng)度,存儲(chǔ)的數(shù)據(jù)長(zhǎng)度超過這個(gè)范圍的時(shí)候數(shù)據(jù)庫就會(huì)報(bào)錯(cuò)。關(guān)于長(zhǎng)度,根據(jù)選擇的數(shù)據(jù)庫類型不同,編碼不同都有不同的算法,水也挺深的,在這里就不多說了。就大概理解成寫了多少數(shù)字就支持多少個(gè)字符的程度吧。

AUTO_INCREMENT:

id這個(gè)字段我們是幾乎不會(huì)在發(fā)布數(shù)據(jù)的時(shí)候手動(dòng)輸入的,那這個(gè)字段下面數(shù)值是怎么來的呢?是自己蹦出來的嗎?對(duì),么錯(cuò),AUTO_INCREMENT就起一個(gè)這樣的作用。當(dāng)你每發(fā)布一條數(shù)據(jù)的時(shí)候id就會(huì)自動(dòng)生成并遞增。你發(fā)布第一條數(shù)據(jù)id就會(huì)自動(dòng)生成1,第二條就是2,第三條就是3,以此類推。

這樣我們的數(shù)據(jù)庫準(zhǔn)備工作就算初步完成了。

哎呀媽呀,前奏好長(zhǎng),累死俺了。總算可以開始教怎么創(chuàng)建欄目了。

連接MYSQL服務(wù):

首先要把數(shù)據(jù)通過PHP程序發(fā)布到MYSQL數(shù)據(jù)庫里,就要先連接上MYSQL服務(wù)?咦?貌似現(xiàn)在還不能發(fā)布,囧囧囧囧囧。

進(jìn)入我們之前創(chuàng)建的網(wǎng)站目錄htdocscainiao,用dreamweaver打開上一章的index.php文件。把之前的代碼刪掉輸入如下代碼。

這個(gè)估計(jì)大家一看就知道是什么意思了!mysql_connect是一條指令,意思跟它的英文一樣就是連接MYSQL的意思??梢岳斫獬墒且环N行為,一種動(dòng)作。

括號(hào)里面的信息是MYSQL的相關(guān)信息,依次是MYSQL服務(wù)器地址、用戶名、密碼。記得把密碼換成自己設(shè)置的密碼哦。

打開瀏覽器輸入 http://127.0.0.1/cainiao/index.php 運(yùn)行。

會(huì)顯示出一片空白!是不是瞬間有一種,靠,玩我呢的想法?嘿嘿,回去把密碼改成錯(cuò)誤的密碼再運(yùn)行試試。改成錯(cuò)誤的密碼之后再運(yùn)行就會(huì)報(bào)錯(cuò)了。所以說明之前的指令是正確的。

選定數(shù)據(jù)庫:

我們登錄PHPMYADMIN可以看到本來就有幾個(gè)默認(rèn)已經(jīng)建好的數(shù)據(jù)庫(information_schema、mysql等)。MYSQL服務(wù)里是可以容納很多個(gè)數(shù)據(jù)庫的。但程序是一個(gè)很笨的東西,雖然我們連接上了MYSQL服務(wù),但是程序同學(xué)還不知道我們要用哪個(gè)數(shù)據(jù)庫。所以我們下一步就需要告訴他,我們后面需要用哪個(gè)數(shù)據(jù)庫。請(qǐng)看下圖

第三行就是我們新增的代碼,這個(gè)也應(yīng)該很好理解吧?mysql select(選擇)db(數(shù)據(jù)庫),db就是數(shù)據(jù)庫的英文database的縮寫。study就是我們之前創(chuàng)建的數(shù)據(jù)庫名稱。

嗯~~~現(xiàn)在MYSQL服務(wù)也連接上了,數(shù)據(jù)庫也選定了,接下來就可以給選定的數(shù)據(jù)庫里插入數(shù)據(jù)了。我們今天的主角代碼要來了。

插入數(shù)據(jù)

第四行就是這次新增的代碼。mysql_query這句話代表著我們要執(zhí)行一段mysql指令。那也就是說后面括號(hào)中的代碼就是需要執(zhí)行的my_sql指令了。

INSERT INTO category也很好理解,跟英文字面意思一樣INSERT(插入)INTO(到)category(我們創(chuàng)建的數(shù)據(jù)表名稱)。

cat_name和update_time我想大家已經(jīng)知道是什么了,就是我們之前在category表里創(chuàng)建的字段。后面的test和2015-10-10 10:30:45就是對(duì)應(yīng)cat_name和update_time的值,按照排列順序依次對(duì)應(yīng)。

好我們現(xiàn)在把代碼保存好之后打開瀏覽器刷新一下http://127.0.0.1/cainiao/index.php 這個(gè)界面吧。依然是一片空白吧?^^

見證奇跡的時(shí)刻到了,我們到phpmyadmin里去看一下我們之前創(chuàng)建的表category

我們可以看到catgory表里出現(xiàn)了一條數(shù)據(jù),cat_id為1,再回到瀏覽器多刷新幾次index.php頁面,再回到phpmyadmin里看看。

我們可以看到每刷新一次都會(huì)多出來一條數(shù)據(jù),并且cat_id在遞增。這個(gè)就是之前提到的AUTO_INCREMENT的作用了。

我想這時(shí)候一些聰明的同學(xué)已經(jīng)嘗試過了cat_name的值里輸入中文信息了。但是插入中文數(shù)據(jù)之后發(fā)現(xiàn)竟然是亂碼對(duì)不對(duì)?

PS:并不一定所有人都會(huì)碰到這個(gè)問題。

這是我們需要一條新的MYSQL_QUERY指令來解決這個(gè)問題了。

第三行就是這次新增的指令,這條指令不可放在mysql_connect前面。之前也講到過MYSQL_QUERY是執(zhí)行后面括號(hào)內(nèi)的MYSQL指令,所以任何MYSQL_QUERY指令都要在連接到MYSQL服務(wù)器之后才能執(zhí)行。關(guān)于SET NAMES UTF8在這里就不具體講了,因?yàn)橐v到的內(nèi)容實(shí)在太多,也不大好很輕松的講明白,還是等大家對(duì)程序了解更多了之后再慢慢研究吧。反正這句話做一套系統(tǒng)也用不到幾次,大家就記者就好了。mysql_connect指令之后就把SET NAMES UTF8這段跟上。

如果還存在亂碼問題的話就再增加下圖中的第二行代碼。

這段的作用是對(duì)我們正在編寫的PHP代碼的編碼進(jìn)行聲明。一般情況下建議大家把2段指定編碼的代碼都加上。

到這里我們就完成了通過PHP程序往數(shù)據(jù)庫里創(chuàng)建欄目的功能。但是這哪夠呢?哪有項(xiàng)目讓人發(fā)布條內(nèi)容要這么發(fā)的???別著急下一節(jié)內(nèi)容就講制作一個(gè)可視化的發(fā)布界面來執(zhí)行發(fā)布數(shù)據(jù)的功能。

一下子吃太多會(huì)消化不良的噢,先把這節(jié)內(nèi)容吃透了之后再繼續(xù)下一節(jié)吧。要腳踏實(shí)地的來哦。(話外音:這個(gè)教程明明是野路子~~~~~~~)

關(guān)于本節(jié)內(nèi)容給大家留兩個(gè)作業(yè)。

1. 修改category表中的cat_name字段的長(zhǎng)度值,把值改小,然后試試插入數(shù)據(jù)。中文,英文,都多試試噢。修改方法如下圖。

2. 插入幾個(gè)新的字段到category表,通過INSERT INTO指令插入多個(gè)值到到數(shù)據(jù)表中。插入字段方法如下圖

好了,今天就到這里吧。不知道您是否覺得學(xué)習(xí)起來有點(diǎn)意思了呢?相信下一節(jié)做可視化的功能會(huì)更好玩的。下一節(jié)就可以把創(chuàng)建欄目的功能完整實(shí)現(xiàn)了。經(jīng)期期待哦!也請(qǐng)不要吝嗇于分享哦,你的支持是我的動(dòng)力!


本文題目:寫給產(chǎn)品經(jīng)理及UI設(shè)計(jì)師的PHP教程丨文章管理系統(tǒng)創(chuàng)建欄目
地址分享:http://www.dlmjj.cn/article/cppopg.html