本文目錄一覽:
- 1、php新手如何入門
- 2、學php可以零基礎入門嗎?需要怎麼學呢?
- 3、php的難點是什麼?要學好PHP主要分為哪幾塊知識?
- 4、零基礎學習PHP如何入門?
- 5、新手入門php要學哪些內容呢?
- 6、PHP入門基礎教程
php新手如何入門
PHP的背景恐怕就不用贅言了,我相信大家選擇一種語言,並不是看它的背景和悠久歷史,更重要的是看它的實用性,華而不實的語言哪怕是再輝煌的歷史,也畢將步向沒落,可喜的是PHP經受住了考驗,也因此,它確實是一種值得學習的語言。
一直是聽從別人的經驗長大的,也因此在前輩們的經驗里讓少走了許多的彎路,更快的步入了正規,在此向那些我至盡不知道其名字的前輩們道聲謝謝,在的眼裡, 幫助不分大小,只要是幫助,總會讓的心裏暖融融的,我想,前輩們幫助我,並不是為了得到我的一句謝謝,更多的是出於一種責任感和對的期望,所以我想,只有 學好PHP,才能對得起前輩們的汗水。
正如我所說的,也終於感覺到了一種責任感,不知道自己的經驗到底能幫助新手多少,但是明白,現在到了履行責任的時候了,我有必要把自己的經驗告訴給所有希望學好PHP的人,只有這樣才能讓中國的PHP不斷的進步,不斷的發展,在世界上佔據一席之地。
學習PHP的這段期間,感覺國內的PHP環境越來越成熟,規範也在逐漸的健全,PHPCHINA的成立,標誌着與官方直接掛鈎的PHP機構在中國正式落戶了,在此獻上遲到的掌聲!
好的,切入正題:
我想在講述自己的學習方式前,對那些期望能從我的文章中獲得有用信息的人說一句心裏話:
的文章不會對您的學習起到實質性的作用,您能否成功,還得靠自己的,堅持,堅持,再堅持,就是步入成功的不二法門。
我先把我自己學習PHP的過程做一下概括:
(1)熟悉HTML/CSS/JS等網頁基本元素,完成階段可自行製作完整的網頁,對元素屬性達到熟悉程度
(2)理解動態語言的概念,運做機制,熟悉PHP語法
(3)學習如何將PHP與HTML結合起來完成簡單動態頁面
(4)接觸MYSQL,開始設計數據庫程序
(5)不斷鞏固,摸透大部分PHP常用函數,並可理解OOP,MYSQL優化,以及模板
(6)完成一個功能齊全的動態站點
我的這套線路可能跟許多學習PHP的愛好者不謀而合,這也算是一個循序漸進的學習過程,不過新手不要看到上面的概括就以為學習蠻簡單的,在此不得不對您稍微潑一下冷水,任何東西其實都不簡單,即使是小吃部的燒餅也不是一下子就會做成的。
我先解釋一下我的學習思路。
首先,理解網站這一概念之後不難看出,任何網站都是由網頁組成的,也就是說想完成網站,必須先學會做網頁,因此必須要掌握了HTML,才能為今後製作網站打下基礎。
在學習HTML中我想邊學邊做是最有效的方式,當然這一方式對於學習PHP同樣是最有效的。
HTML中的任何元素都要親自實踐,只有明白了什麼元素會起到什麼效果之後,你才會記憶深刻,而一味的啃書,絕對是不行的,我想大部分新手之所以覺得概念難學,大部分是一個字「懶」,懶是阻止進步的最大敵人,所以克服掉懶的習慣,才能更快的學好一樣東西。
也許您在學習PHP的時候只想儘快的開發一個網站,也就會想我做網站,幹嘛要學什麼網頁這些小兒科?不難看出,眼高手低的新手不在少數,這種思想無疑於建造空中樓閣,你不建地基,何來的房頂呢?
OK,掌握靜態網頁的製作技術是學習開發網站的先決條件,這一點就講到這裡,因為這篇文章不是教程文章,也就不對技術進行深入的刨析了。
我假設你目前已經可以完成一個靜態頁面了,當然,做的好看難看是另外一說,的第一個網頁也沒好看到哪去,但是「孩子」再丑,咱們做「爹媽」的也不能嫌棄不是?這畢竟是咱的成果。
那麼咱們就開始學習動態語言的概念吧,剛一接觸動態語言,可能很多人都會蒙了,怎麼這亂七八糟的東西,在網頁里顯示的時候卻是另外一碼事?其實這並不算亂 七八糟,你寫的HTML代碼不也一樣是一堆堆的字符嗎?畢竟,代碼並不是作為直接輸出的,而是經過處理的,說白了,HTML是經過HTML解析器,而 PHP當然也就通過PHP解析器了,跟學習HTML一樣的道理,想讓任何的解析器完成操作,就必須使用它們專用的語法結構,所以PHP長相奇怪也就不足為 奇了。
對於PHP的理解是新手最難邁過的一道門檻,不過你應該感到幸運的是PHP已經最大極限的為了新手而努力了,如果你學過其他的語言,也許會覺得PHP的確相當的簡單,但是如果你之前什麼都沒學過,那麼阿彌陀佛,硬着頭皮琢磨吧。
書過三遍自然熟,這個簡單的道理告訴我們,即使你理解不了PHP,但是也必須先跟它混個臉熟,看,一遍遍的看,看的同時一邊琢磨,一邊按照它所教的打代碼,即使你搞不清楚那些代碼到底是幹嘛的,但是起碼你應該找找感覺。
在一段掙扎之後,聰明的你,顯然已經逐漸的開悟了,慢慢的理解了編程的概念,那麼祝賀你,你已經邁出了成功的第一步。
搞清楚HTML和PHP的概念,那麼PHP和HTML混合編程應該不成問題,在這期間,你完全可以讓PHP給你算算一加一等於幾,然後在瀏覽器輸出,不要 覺得幼稚,這的確是跟阿波羅登月一樣,你打的是一小段代碼,但是對於你的編程之路,可是邁出了一大步啊!興奮吧?但是不得不再給你潑點冷水,您還是菜鳥一 個。
高興一段時間就必須繼續努力了,接下來就是學習數據庫了,MYSQL可算是PHP的黃金搭檔了,不過,雖然話是這麼說,你也可能恨不得把MYSQL給生吞活剝了,因為這一行一列的東東簡直讓自己頭暈目眩。
頭暈歸頭暈,目眩歸目眩,你不可能吃飯的時候咬了自己一下舌頭就從此不吃飯了不是?放下畏懼,繼續努力,咱們是來征服它的,而不是被它征服的,振奮起來吧同志。
在一番搏鬥之後,你終於理解了數據庫的概念,而且讓你興奮不已的是你終於可以通過PHP來連接數據庫了,這期間你是怎麼學會的,我們不去考證了,但是事實證明,你已經可以了。
學會了PHP和數據庫的你,無疑是左手拿着MOTOLOLA右手拿着NOKIA,要多瀟洒,有多瀟洒,哈哈,終於學會了,但是可能這個時候,又會有人不經意的拍拍肩膀對你說:哥們,別高興的太早,你還是菜鳥,離學會還差着一大截呢!
等到你發奮努力的學會了用PHP成功的插入,刪除,更新數據的時候,顯然,你已經距離成功指日可待了。
這個時候的你也許是這種狀態:
你會HTML嗎?會,我能編好幾個大表格排板的網頁啦!
你會PHP嗎?會,我會把一加一的運算寫在函數里,然後調用啦!
你會MYSQL嗎?會,我會把我的信息在數據庫里插入刪除啦
那,接下來你該怎麼做呢?我覺得,小試一下身手,大概是沒問題了,那麼交給你個任務,做個留言本吧,這和HELLO WORLD有一比啊!^_^,同是新手面臨的第一道關。
花了一段時間,你終於學會把表單的數據插入數據庫,然後顯示出來了,應該說一個程序的雛形已經誕生了。
但是,你可能瞅瞅東,看看西,人家這個編論壇,那個CMS,還有那啥CRM,我啥時候寫一個呢?
不要急,可以說你的馬步已經扎的差不多了,接下來就要開始練把勢的時候了,如果有條件的話,用筆或者打印一個簡易的PHP手冊在身上,時不時的摸出來看看,記得,去WC也不能放過(^2^)。
再有條件的話,買本書看看吧,《PHP+MYSQL WEB開發(第三版)》號稱聖經級,(也許是個不錯的選擇(聲明:作者沒給我啥好處費,我也不是書托,隔着大老遠,我連他老兄的面都沒見過的說-_-)
鞏固了自己的知識,熟悉了PHP和MYSQL開發的要領之後,再回頭看你寫的那個留言本,你也許會懷疑那真的是你寫的嗎?當然,如果屋裡還有鬼的話,也許是它寫的-_-
這個時候,你的留言本應該加入註冊以及分頁功能了,而如果你更強的話,UI(用戶界面)也可以加強,完成之後,感覺是不是特有成就感?不管怎麼樣,咱好歹 是寫了一個動態網站程序了,放在自己的網站上耍耍吧,讓好朋友來看看,嘿,看咱寫的多棒,然後再在網上宣傳一下。
幾天之後你再打開留言本,哎?哇,一下彈出N多頁面!很明顯,你的留言本並沒有做好安全防範,被人用JS代碼小小的耍了一下,我很同情你這個時候的感受,但是沒有別的辦法了,繼續努力吧!
你發奮努力,熟悉了安全方面的問題,然後又設計了一些程序,感覺還不錯。
那麼接下來,這就算學會啦?NO,NO,NO,還早呢,你至盡還沒碰過OOP之類的吧?模板呢?
恩,學!加緊學呀學,學會了這些之後,你又學會了生成靜態網頁,現在你應該接觸一下XML了,恩,XML也了解了,那麼AJAX你也得接觸接觸吧?AJAX完了….然後…
總而言之,你絕對不會發現你全部都學會了,一些真正的強人總會搞出新玩意來丟給你,你不學就落後了,也印證了前人的經驗,果然是學無止境啊!
我想通過我的一番YY,你也應該大致熟悉了一些學習過程,也許我的過程和你的有些出路,但是不管怎麼樣是殊途同歸,我寫這麼多,也只是給大家一個借鑒的機會,至於好與不好,不敢打包票^0^
看完之後你發現,羅嗦這麼多,對我一點用處沒有啊,我知道該怎麼學,但是我想如何才能更快的學,一周速成,啊不,24小時速成那種,你有沒?
我…….我沒有,但是2分鐘之內把你扁進醫院裏,我倒是有把握-_-
學東西,永遠不要妄想有速成這一說,告訴你了一個方式,但是缺少努力這一環節,那也是白搭。
但是有一點我可以給你保證的就是,你學會了PHP,那麼學其他的語言,肯定速成,反過來也一樣,如果你之前學過其他的語言,那麼學PHP肯定快。
不過語法好學,但是怎麼用語法來實現每個人都有每個人的方式,幾乎是各有千秋。然而借鑒別人成功的代碼,絕對是有益無害,因此,多看那些經過千錘百鍊凝出來的經典代碼,是進階的最好方法。
講了這麼多,無非是想說:學習PHP不僅要掌握方法,更多的是付出汗水,我不希望看到中途放棄的人,相信自己,相信自己的選擇,更要相信自己的能力,如果 自己想放棄,暴力一點的話,就自己抽自己一個嘴巴,然後大吼:別人可以,我為什麼就不可以?(是不是有點閻羅教練的味道,的確是電影看多了,抽嘴巴是會痛 的,各位其實明白這個道理了就行了)
另外要叮囑各位的是,抵禦誘惑,ASP/PHP/JSP/.NET的對比也許會讓你無所適從,你也許學了一半PHP,又開始打C#的主意,或者有人說 JAVA很強,這個時候的你絕對不能動搖,哪怕你真想學,也得學會了PHP。然後再學,見異思遷是最不可取的,狗熊掰玉米就是這個道理,如果經常中途放 棄,只能是一無所獲,還浪費了N多的時間和經歷,得不償失,最重要的是,你會被別人瞧不起,沒有人會喜歡和見異思遷的人交朋友,因為這種人太不安分,太不 可靠,因此,你必須要強迫自己完成自己的目標,哪怕可能會很難受,也得堅持,毅力就是這麼鍛鍊出來的。
學php可以零基礎入門嗎?需要怎麼學呢?
PHP本身可深可淺,如果您自己感覺邏輯思維能力不錯,零基礎入門是可以的。
有如下情況建議考慮:
1.如果是用於工作的話,很難完全迴避HTML、CSS、Javascript,這些不是PHP工程師的工作,可完全不懂干起活來也是麻煩。
2.數據庫,這個必須啊。工程中,寫PHP不涉及數據庫的可能性非常小。
3.基礎的程序邏輯。C也好Basic也罷,如果沒有任何編程基礎,好像一般的PHP書籍還真的很少集中講解程序邏輯。
由於不清楚您說的「零基礎」到底怎麼零法,簡單的建議:
1.先找一本基礎的Web開發書籍,最好是HTML5、CSS、JS全包含的,快速通讀。能懂多少算多少。
2.找一本講MySQL的入門書籍,花點功夫看一下,基本的SQL語句和邏輯要弄清楚。
3.快速通讀譚浩強的C語言程序設計,明白編程是怎麼回事。
然後再進入PHP學習,有不會的地方多聯繫。
php的難點是什麼?要學好PHP主要分為哪幾塊知識?
PHP本身不難,難的是WEB開發需要結合很多知識。大概有:1.HTML(基礎知識)2.CSS (樣式表,基礎知識)3.Javascript(不能或缺,基礎知識)4.PHP(動態語言,基礎知識)5.數據庫(PHP搭配MySQL比較多,幾乎必用) 相關的有:1.了解服務器工作流程,程序運行環境2.額外的客戶端技術,如Ajax,Jquery庫等3.額外的服務器技術,如動態生成圖像、數據庫操作庫等4.以及任何需要用到的技術 一般來說,PHP入門容易,晉級比較難,想專業也比較難。其實任何一門語言都是這樣的。
零基礎學習PHP如何入門?
其實學習PHP只要把握好學習路線,能夠在極短的時間裏完成從新手到熟練的過程。在這裡,小編為大家整理出了學習PHP的路線和具體的課程。
入門:新人必看的PHP基礎知識視頻教程
可掌握PHP基礎知識,了解PHP的基本語法、數組、函數、表單驗證、圖像處理,以及MySQL數據庫等PHP開發過程中所遇到的知識點和基本操作。
進階:PHP如何操作MySQL數據庫視頻教程
利用PHP操作MySQL數據庫教程,MySQL是PHP最合適的搭配,MYSQL開源、跨平台,PHP擴展包對MySQL的支持比較完善。本課程講解MySQL數據庫的基礎知識,以及如何利用PHP來操作MySQL數據庫,實現對數據的調用和修改。
實戰:PHP項目實戰_多用戶留言系統視頻教程
利用PHP基礎課程中的知識,在本課程中創建多用戶留言系統,包括用戶界面設計,註冊,驗證,帖子的寫入、修改等留言系統的必備功能。
進階:PHP進階之面向對象相關視頻教程
學習和了解開發獨立的模板引擎技術,學習三層架構及分層思想和原理,然後通過後面的CMS內容管理系統等課程的實踐來掌握以上知識點。
進階:PHP進階之CMS內容管理系統
CMS內容管理系統具有許多基於模板的優秀設計,可以加快網站開發速度和開發成本,同時易於使用,可開發性強,可分佈式管理,CMS的功能並不只限於文本處理,它也可以處理圖片、Flash動畫、聲像流、圖像、甚至電子郵件檔案等。
ThinkPHP框架講解視頻教程
ThinkPHP是為了簡化企業級應用開發和敏捷WEB應用開發而誕生的。從誕生以來一直秉承簡潔實用的設計原則,在保持出色的性能和至簡的代碼的同時,也注重易用性,並且擁有眾多原創功能和特性。理解ThinkPHP的框架基礎知識,安裝配置,模型的建立、開發及調試。學習ThinkPHP3.2.1的使用方法。
作為一個新手,學習PHP語言需要有學習一門新語言的心態,注意不驕不躁,步步為營,按照方法和步驟去學習,由淺入深的接觸。
新手入門php要學哪些內容呢?
1、WEB基礎
要知道網站是什麼東西,所使用的協議是怎麼工作的,怎樣把網站放在服務器上。
2、HTMLphp
HTMLphp是嵌入在HTML的語言,所以HTML是必須的。可以用HTML寫出簡單的靜態的頁面,放在本機的服務器上看看效果。
3、DIV+CSS
能夠用DIV+CSS布局做出漂亮的精美靜態網頁。
4、php基礎
學習php基礎,如php語法,php變量,php流程控制,php函數,php數組應用,php字符串處理,php常用模塊,php文件處理,php動態圖像處理,會話控制等,就可以把靜態頁面變成動態的。這個階段比較枯燥,主要是記憶,必須能夠熟練應用。
5、MySQL
網站往往包含大量的信息,這些信息不可能都放在程序(php文件)中,需要MySQL來儲存大量的數據信息。
6、Javascript
掌握了以上內容就可以搭建一個php基礎網站,但是還需要靠Javascript來完成網站的特效和信息驗證等。
7、php高級
作為一個可以上線運營的全功能網站,還要繼續學習php高級知識,如php面向對象,數據抽象層PDO,MEMCACHE,高級SESSION,php的設計模式,MVC,smarty模板,主流框架的解讀等內容,這個階段需要多讀優質的開源代碼,多寫代碼。
8、Linux
正如大家所熟知的php較佳的搭配是LAMP(Linux+Apache+MySQL+Php)或LNMP(Linux+Nginx+MySQL+Php),那麼顯然在Linux系統下的php網站比在Windows下兼容性好,基於此我們需要知道在Linux下搭建php環境的方法以及Linux的日常管理命令,以便我們網站的日常管理運營。
9、項目相關
這個階段首先需要了解項目開發流程,需求分析,程序設計說明書,數據庫設計說明書,編碼規範,大流量/大數據架構,MYSQL深度優化,全文索引等內容。
目前為止學到這個階段,已經可以算是php小牛了,要繼續向php大牛進發就需要參與開發大型網站項目,以此練手。北大青鳥認為參與大項目開發,實踐為主。通過這階段的學習就可以自主做企業網站、論壇、網頁遊戲等。
PHP入門基礎教程
PHP入門基礎教程大全
PHP於1994年由Rasmus Lerdorf創建,剛剛開始是Rasmus Lerdorf為了要維護個人網頁而製作的一個簡單的用Perl語言編寫的程序。這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統計網頁流量。後來又用C語言重新編寫,包括可以訪問數據庫。他將這些程序和一些表單直譯器整合起來,稱為 PHP/FI。PHP/FI 可以和數據庫連接,產生簡單的動態網頁程序。為幫助大家入門學習php,我為大家分享PHP入門知識教程如下:
1、嵌入方法:
類似ASP的%,PHP可以是?php或者是?,結束符號是?,當然您也可以自己指定。
2、引用文件:
引用文件的方法有兩種:require 及 include。
require 的使用方法如 require(“MyRequireFile.php”); 。這個函數通常放在 PHP 程序的最前面,PHP 程序在執行前,就會先讀入 require 所指定引入的文件,使它變成 PHP 程序網頁的一部份。常用的函數,亦可以這個方法將它引入網頁中。
include 使用方法如 include(“MyIncludeFile.php”); 。這個函數一般是放在流程控制的處理部分中。PHP 程序網頁在讀到 include 的文件時,才將它讀進來。這種方式,可以把程序執行時的流程簡單化。
3、注釋方法:
?php
echo “這是第一種例子。\n” ; // 本例是 C++ 語法的注釋 (PHP的注釋跟C差不多!)
/* 本例採用多行的
注釋方式 */
echo “這是第二種例子。\n” ;
echo “這是第三種例子。\n” ; # 本例使用 UNIX Shell 語法注釋
?
4、變量類型:
$mystring = “我是字符串” ;
$NewLine = “換行了\n” ;
$int1 = 38 ;
$float1 = 1.732 ;
$float2 = 1.4E+2 ;
$MyArray1 = array( “子” , “丑” , “寅” , “卯” );
這裡引出兩個問題,首先PHP變量以$開頭,第二PHP語句以;結尾,可能ASP程序員會不適應。這兩個遺漏也是程序上大多錯誤所在。
5、運算符號:
數**非法字眼已被屏蔽**算:
符號 意義
+ 加法運算
– 減法運算
* 乘法運算
/ 除法運算
% 取餘數
++ 累加
— 遞減
字符串運算:
運算符號只有一個,就是英文的句號。它可以將字符串連接起來,變成合併的新字符串。類似ASP中的
?
$a = “PHP 4” ;
$b = “功能強大” ;
echo $a.$b;
?
這裡也引出兩個問題,首先PHP中輸出語句是echo,第二類似ASP中的%=變量%,PHP中也可以?=變量?。
邏輯運算:
符號 意義
小於
大於
= 小於或等於
= 大於或等於
== 等於
!= 不等於
而且 (And)
and 而且 (And)
或者 (Or)
or 或者 (Or)
xor 異或 (Xor)
! 不 (Not)
學習目的:掌握php的流程控制
1、if..else 循環有三種結構
第一種是只有用到 if 條件,當作單純的判斷。解釋成 “若發生了某事則怎樣處理”。語法如下:
if (expr) { statement }
其中的 expr 為判斷的條件,通常都是用邏輯運算符號當判斷的條件。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。
範例:本例省略大括號。
?php
if ($state==1)echo “哈哈” ;
?
這裡特別注意的是,判斷是否相等是==而不是=,ASP程序員可能常犯這個錯誤,= 是賦值。
範例:本例的執行部分有三行,不可省略大括號。
?php
if ($state==1) {
echo “哈哈 ;
echo “br” ;
}
?
第兩種是除了 if 之外,加上了 else 的條件,可解釋成 “若發生了某事則怎樣處理,否則該如何解決”。語法如下
if (expr) { statement1 } else { statement2 } 範例:上面的例子來修改成更完整的處理。其中的 else 由於只有一行執行的指令,因此不用加上大括號。
?php
if ($state==1) {
echo “哈哈” ;
echo “br”;
}
else{
echo “呵呵”;
echo “br”;
}
?
第三種就是遞歸的 if..else 循環,通常用在多種決策判斷時。它將數個 if..else 拿來合併運用處理。
直接看下面的例子
?php
if ( $a $b ) {
echo “a 比 b 大” ;
} elseif ( $a == $b ) {
echo “a 等於 b” ;
} else {
echo “a 比 b 小” ;
}
?
上例只用二層的 if..else 循環,用來比較 a 和 b 兩個變量。實際要使用這種遞歸 if..else 循環時,請小心使用,因為太多層的循環容易使設計的邏輯出問題,或者少打了大括號等,都會造成程序出現莫名其妙的問題。
2、 for 循環就單純只有一種,沒有變化,它的語法如下
for (expr1; expr2; expr3) { statement }
其中的 expr1 為條件的`初始值。expr2 為判斷的條件,通常都是用邏輯運算符號 (logical operators) 當判斷的條件。expr3 為執行 statement 後要執行的部份,用來改變條件,供下次的循環判斷,如加一..等等。而 statement 為符合條件的執行部分程序,若程序只有一行,可以省略大括號 {}。
下例是用 for 循環寫的的例子。
?php
for ( $i = 1 ; $i = 10 ; $i ++) {
echo “這是第”.$i.”次循環br” ;
}
?
3、 switch 循環,通常處理複合式的條件判斷,每個子條件,都是 case 指令部分。在實作上若使用許多類似的 if 指令,可以將它綜合成 switch 循環。
語法如下
switch (expr) { case expr1: statement1; break; case expr2: statement2; break; default: statementN; break; }
其中的 expr 條件,通常為變量名稱。而 case 後的 exprN,通常表示變量值。冒號後則為符合該條件要執行的部分。注意要用 break 跳離循環。
?php
switch ( date ( “D” )) {
case “Mon” :
echo “今天星期一” ;
break;
case “Tue” :
echo “今天星期二” ;
break;
case “Wed” :
echo “今天星期三” ;
break;
case “Thu” :
echo “今天星期四” ;
break;
case “Fri” :
echo “今天星期五” ;
break;
default:
echo “今天放假” ;
break;
}
?
這裡需要注意的是break;別遺漏了,default,省略是可以的。
很明顯的,上述的例子用 if 循環就很麻煩了。當然在設計時,要將出現機率最大的條件放在最前面,最少出現的條件放在最後面,可以增加程序的執行效率。上例由於每天出現的機率相同,所以不用注意條件的順序。
學會構建數據庫
在PHP中,MY SQL的命令行編輯可能會令初學者感到很麻煩,不要緊,你下載一個PHPMYADMIN安裝一下,以後建立編輯數據庫可以靠它了。
下面說一下它的使用。
進入了phpmyadmin後,我們首先需要建立一個數據庫,
Language (*) 這裡選擇中文簡體,然後在左邊的 創建一個新的數據庫 這裡填寫數據庫名字,點擊創建即可。
然後在左邊下拉菜單中選擇那個已經創建的數據庫。在下面的
在數據庫 shop 中創建一個新表 :
名字 :
字段數 :
中填寫表名字和大致你認為的字段數(不夠或者多了都不要緊,以後可以再添加或者缺省),按執行。
然後就可以開始建立表了。
第一欄是字段的名字;第二欄選擇字段類型:
我們常用的是以下幾個:
1)VARCHAR,文本類型
2)INT,整數類型
3)FLOAT,浮點數類型
4)DATE,日期型
5)大家或許會問,自動添加的ID在哪裡?這個只要選擇INT類型,在後面的額外中選擇 auto_increment 就可以了。
建立了表以後,可以在左邊看到你建立的表,點擊以後,你可以:
1)按右邊的結構:查看修改表結構
2)按右邊的瀏覽:查看錶中的數據
3)按右邊的SQL:運行SQL語句
4)按右邊的插入:插入一行記錄
5)按右邊的清空:刪除表中所有記錄
6)按右邊的刪除:刪除表
還有一個很重要的功能就是導入和導出,當我們本機做好了程序和數據庫的時候,需要在服務器上也有一個本地鏡像,如果是ASP的ACCESS簡單了,直接上傳MDB文件即可,如果是SQL SERVER也可以連接遠端服務器進行導入。那麼MY SQL中你可以導出所有的SQL語句,到了遠端服務器的PHPMYADMIN上,創建數據庫後按SQL,粘帖你剛才複製下來的所有本級生成的SQL語句即可。
學會連接數據庫
PHP簡直就是一個函數庫,豐富的函數使PHP的某些地方相當簡單。建議大家down一本PHP的函數手冊,總用的到。
我這裡就簡單說一下連接MYSQL數據庫。
1、mysql_connect
打開 MySQL 服務器連接。
語法: int mysql_connect(string [hostname] [:port], string [username], string [password]); 返回值: 整數
本函數建立與 MySQL 服務器的連接。其中所有的參數都可省略。當使用本函數卻不加任何參數時,參數 hostname 的默認值為 localhost、參數 username 的默認值為 PHP 執行行程的擁有者、參數 password 則為空字符串 (即沒有密碼)。而參數 hostname 後面可以加冒號與端口號,代表使用哪個端口與 MySQL 連接。當然在使用數據庫時,早點使用 mysql_close() 將連接關掉可以節省資源。
2、 mysql_select_db
選擇一個數據庫。
語法: int mysql_select_db(string database_name, int [link_identifier]); 返回值: 整數
本函數選擇 MySQL 服務器中的數據庫以供之後的資料查詢作業 (query) 處理。成功返回 true,失敗則返回 false。
最簡單的例子就是:
$conn=mysql_connect (“127.0.0.1”, “”, “”);
mysql_select_db(“shop”);
連接機MY SQL數據庫,打開SHOP數據庫。在實際應用中應當加強點錯誤判斷。
學會讀取數據
先看兩個函數:
1、mysql_query
送出一個 query 字符串。 語法: int mysql_query(string query, int [link_identifier]); 返回值: 整數
本函數送出 query 字符串供 MySQL 做相關的處理或者執行。若沒有指定 link_identifier 參數,則程序會自動尋找最近打開的 ID。當 query 查詢字符串是 UPDATE、INSERT 及 DELETE 時,返回的可能是 true 或者 false;查詢的字符串是 SELECT 則返回新的 ID 值,當返回 false 時,並不是執行成功但無返回值,而是查詢的字符串有錯誤。
2、mysql_fetch_object 返回類資料。 語法: object mysql_fetch_object(int result, int [result_typ]); 返回值: 類
本函數用來將查詢結果 result 拆到類變量中。若 result 沒有資料,則返回 false 值。
看一個簡單的例子:
?
$exec=”select * from user”;
$result=mysql_query($exec);
while($rs=mysql_fetch_object($result))
{
echo “username:”.$rs-username.”br”;
}
?
當然,表user中有一個username的字段,這就類似asp中的
%
exec=”select * from user”
set rs=server.createobject(“adodb.recordset”)
rs.open exec,conn,1,1
do while not rs.eof
response.write “username:”rs(“username”)”br”
rs.movenext
loop
%
當然先要連接數據庫,一般我們 require_once(‘conn.php’);而conn.php裏面就是上一次說的連接數據庫的代碼。
小小的兩條命令可以完成讀取數據的工作了
學會添加刪除修改數據
mysql_query($exec);
單這個語句就可以執行所有的操作了,不同的就是$exec這個sql語句
添加:$exec=”insert into tablename (item1,item2) values (‘”.$_POST[‘item1’].”‘,”.$_POST[‘item1’].”)”;
刪除:$exec=”delete from tablename where…”;
修改:$exec=”update tablename set item1='”.$_POST[‘item1’].”‘ where …”;
說到這裡就要說一下表單和php變量傳遞,如果表單中的一個 input name=”item1″ type=”text” id=”item1″
表單以POST提交的,那麼處理表單文件就可以用$_POST[‘item1’]得到變量值,同樣以GET提交的就是$_GET[‘item1’]
是不是很簡單?但是通常$exec會有問題,因為可能您的SQL語句會很長,您會遺漏.連接符,或者’來包圍字符型字段。
我們可以注釋mysql_query($exec);語句用echo $exec;代替來輸出$exec以檢查正確性。如果您還不能察覺$exec有什麼錯誤的話,可以複製這個sql語句到phpmyadmin中執行,看看它的出錯信息。還有需要注意的是,我們不要使用一些敏感的字符串作為字段名字,否則很可能會出現問題,比如說date什麼的。變量的命名,字段的命名遵循一點規律有的時候對自己是一種好處,初學者並不可忽視其重要性。
學會SESSION的使用
SESSION的作用很多,最多用的就是站點內頁面間變量傳遞。
在頁面開始我們要session_start();開啟SESSION;
然後就可以使用SESSION變量了,比如說要賦值就是:$_SESSION[‘item’]=”item1″;要得到值就是$item1=$_SESSION[‘item’];,很簡單吧。這裡我們可能會使用到一些函數,比如說判斷是不是某SESSION變量為空,可以這麼寫:empty($_SESSION[‘inum’])返回true or false。
下面綜合一下前面所說的我們來看一個登陸程序,判斷用戶名密碼是否正確。
登陸表單是這樣:login.php
table width=”100%” height=”100%” border=”0″ align=”center” cellpadding=”0″ cellspacing=”0″
tr
form action=”checklogin.php” method=”post”td align=”center” valign=”middle”table width=”400″ border=”0″ cellpadding=”5″ cellspacing=”1″ class=”tablebg”
tr class=”tdbg”
td colspan=”2″p align=”center”Administrators Login/p/td
/tr
tr class=”tdbg”
tdp align=”center”Username/p/td
tdp align=”center”
input name=”username” type=”text” id=”username”
/p/td
/tr
tr class=”tdbg”
tdp align=”center”Password/p/td
tdp align=”center”
input name=”password” type=”password” id=”password”
/p/td
/tr
tr class=”tdbg”
td colspan=”2″p align=”center”
input type=”submit” name=”Submit” value=”Submit”
input type=”reset” name=”Submit2″ value=”Clear”
/p/td
/tr
/table/td/form
/tr
/table
處理文件是這樣
?php
require_once(‘conn.php’);
session_start();
$username=$_POST[‘username’];
$password=$_POST[‘password’];
$exec=”select * from admin where username='”.$username.”‘”;
if($result=mysql_query($exec))
{
if($rs=mysql_fetch_object($result))
{
if($rs-password==$password)
{
$_SESSION[‘adminname’]=$username;
header(“location:index.php”);
}
else
{
echo “scriptalert(‘Password Check Error!’);location.href=’login.php’;/script”;
}
}
else
{
echo “scriptalert(‘Username Check Error!’);location.href=’login.php’;/script”;
}
}
else
{
echo “scriptalert(‘Database Connection Error!’);location.href=’login.php’;/script”;
}
?
conn.php是這樣:
?php
$conn=mysql_connect (“127.0.0.1”, “”, “”);
mysql_select_db(“shop”);
?
由於 $_SESSION[‘adminname’]=$username;我們可以這樣寫驗證是否登陸語句的文件:checkadmin.php
?php
session_start();
if($_SESSION[‘adminname’]==”)
{
echo “scriptalert(‘Please Login First’);location.href=’login.php’;/script”;
}
?
做一個分頁顯示
關鍵就是用到了SQL語句中的limit來限定顯示的記錄從幾到幾。我們需要一個記錄當前頁的變量$page,還需要總共的記錄數$num
對於$page如果沒有我們就讓它=0,如果有0就讓它也=0,如果超過了總的頁數就讓他=總的頁數。
$execc=”select count(*) from tablename “;
$resultc=mysql_query($execc);
$rsc=mysql_fetch_array($resultc);
$num=$rsc[0];
這樣可以得到記錄總數
ceil($num/10))如果一頁10記錄的話,這個就是總的頁數
所以可以這麼寫
if(empty($_GET[‘page’]))
{
$page=0;
}
else
{
$page=$_GET[‘page’];
if($page0)$page=0;
if($page=ceil($num/10))$page=ceil($num/10)-1;//因為page是從0開始的,所以要-1
}
這樣$exec可以這麼寫 $exec=”select * from tablename limit “.($page*10).”,10″;
//一頁是10記錄的
最後我們需要做的就是幾個連接:
a href=”xxx.php?page=0″FirstPage/a
a href=”xxx.php?page=?=($page-1)?”PrevPage/a
a href=”xxx.php?page=?=($page+1)?”NextPage/a
a href=”xxx.php?page=?=ceil($num/10)-1?”LastPage/a
注意事項
1、注意不要漏了分號
2、注意不要漏了變量前的$
3、使用SESSION的時候注意不要遺漏session_start();
如果發生錯誤的時候,可以採用以下方法:
1、如果是SQL語句出錯,就注釋了然後輸出SQL語句,注意也要注釋調後續的執行SQL語句
2、如果是變量為空,大多是沒有傳遞到位,輸出變量檢查一下,檢查一下表單的id和name
3、如果是數據庫連接出錯,檢查是否正確打開MY SQL和是否遺漏了連接語句
4、注意縮進,排除括號不區配的錯誤
在做大網站的時候,我的思路是先構建數據庫,確定每一個字段的作用,和表之間的關係。然後設計後台界面,從添加數據開始做起,因為添加是否成功可以直接到數據庫裏面驗證,做好了添加再做顯示的頁面,最後才是兩者的結合。一般來說後台就包括添加刪除修改和顯示,後台沒有問題了,前台也沒有什麼大問題。前台還需要注意安全性和容錯還有就是輸出格式。
學會用PHP上傳文件和發郵件
上傳文件表單必須加上 enctype=”multipart/form-data”
和 input type=”file” name=”file”
下面看一下代碼:
$f=$HTTP_POST_FILES[‘file’];
$dest_dir=’uploads’;//設定上傳目錄
$dest=$dest_dir.’/’.date(“ymd”).”_”.$f[‘name’];//我這裡設置文件名為日期加上文件名避免重複
$r=move_uploaded_file($f[‘tmp_name’],$dest);
chmod($dest, 0755);//設定上傳的文件的屬性
上傳的文件名為date(“ymd”).”_”.$f[‘name’] ,可以在以後插入到數據庫的時候用到,PHP實際上是把你上傳的文件從臨時目錄移動到指定目錄。move_uploaded_file($f[‘tmp_name’],$dest);這是關鍵
至於發郵件就更加簡單,可以使用mail()函數
mail(“收件人地址”,”主題”,”正文”,”From:發件人\r\nReply-to:發件人的地址”);
不過mail()需要服務器的支持,在WINDOWS下還需要配置SMTP服務器,一般來說外面的LINUX空間都行。
好像上傳文件和發郵件比ASP簡單很多,只要調用函數就可以了。ASP還需要用到服務器的不同組件比如FSO、JMAIL什麼的。
;
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/279389.html