這個(gè)系列的教程由表單開(kāi)始寫,因?yàn)楸韱慰梢园?a href='http://m.survivalescaperooms.com/tag/shujuku_5278_1.html' target='_blank'>數(shù)據(jù)庫(kù)和web 之間的交互表現(xiàn)得很明顯。提交表單 ,數(shù)據(jù)庫(kù)記錄注冊(cè)信息。
本教程屬于基礎(chǔ)教程。大神請(qǐng)略過(guò)。 對(duì)于php和mysql之間的穩(wěn)固性很受程序員的喜愛(ài)。雖說(shuō)最近出現(xiàn)了hack語(yǔ)言準(zhǔn)備替代php語(yǔ)言,但是這個(gè)語(yǔ)言本身也是基于php的,后面我們可以對(duì)hack語(yǔ)言進(jìn)行一定得學(xué)習(xí)。 好像博客園有好多大牛,不知道會(huì)不會(huì)被噴,好怕 .......。當(dāng)然,我是借著自己學(xué)習(xí)的這股勁,把學(xué)習(xí)的過(guò)程也給記錄下來(lái)。教程涉及 html 表單 簡(jiǎn)單的php 和mysql .先用最簡(jiǎn)單的表單,意思一下之間的交互就行了。 記得當(dāng)我們什么都不懂的時(shí)候,代碼也不清楚的時(shí)候,我們?cè)谙胫婊玫拇a世界,感覺(jué)無(wú)比的奇妙,當(dāng)我們步入代碼世界的時(shí)候,我們又感到茫然了。代碼是什么。此處從html說(shuō)起。當(dāng)然,要是html都不懂, 也不會(huì)到博客園來(lái)的。隨便說(shuō)一下 就是瀏覽器中右擊,查看源代碼的那個(gè)代碼就是html了。但是它只是網(wǎng)頁(yè)的結(jié)構(gòu)了,要想形成一個(gè)漂亮的網(wǎng)頁(yè)當(dāng)然要很多東西了 ,其他的有機(jī)會(huì)再說(shuō),這次說(shuō)網(wǎng)頁(yè)之間的交互了。也就是動(dòng)態(tài)網(wǎng)站的開(kāi)發(fā)。 要是表單都不知道的話,搜索一下。就是那個(gè)注冊(cè)的時(shí)候,那些框框了。 下面是表單代碼。<form action='index.php' method='post'> //這里的index.php 就是一個(gè)動(dòng)態(tài)傳送的文件。后面會(huì)說(shuō)。<p>please type your first name:<input type='text' name='first_name' value=''></p><p>please type your second name:<input type='text' name='second_name' value='' ></p><p>please type your age:<input type='text' name='age' value=''></p><p><input type='submit' name='submit' value='register'></p></form>就是這一串代碼,保存好后,網(wǎng)頁(yè)打開(kāi),只有框子在 ,點(diǎn)擊也沒(méi)有什么用,當(dāng)然這就是前端了。 我們今天說(shuō)的后端。你需要的就是把那個(gè)輸入的部分 傳送到所謂的數(shù)據(jù)庫(kù)中去保存好,這樣方便網(wǎng)站管理。到底怎么樣傳過(guò)去的呢?這里就要說(shuō)php 和mysql 了。注意: 運(yùn)行php 和mysql 的時(shí)候,是要有環(huán)境的。要有它們運(yùn)行的基礎(chǔ)。它們的環(huán)境,要不然怎么生存呢。對(duì)吧? 然后有個(gè)很有名的一件套件包。包括了這些環(huán)境。下一步 下一步 安裝就行了。 地址:http://apmserv.s135.com/ 尊重原來(lái)的地址。 貌似windows 8上裝不了。哎。。。 安裝好,先熟悉一下吧。恩 ~~ php 就是在 代碼區(qū)<? /code ?>在中間寫php代碼,文件時(shí).php格式,里面可以加入html語(yǔ)言。恩,把表單放進(jìn)去吧。 放進(jìn)去了 訪問(wèn)它還是原來(lái)一樣一樣的。然后讓它變成動(dòng)態(tài)的吧。加入幾個(gè)變量。
<p>please type your first name:<input type='text' name='first_name' value='<? if(isset($_REQUEST['first_name'])) echo $_REQUEST['first_name'];?>'></p><p>please type your second name:<input type='text' name='second_name' value='<? if(isset($_REQUEST['first_name'])) echo $_REQUEST['second_name'];?>' ></p><p>please type your age:<input type='text' name='age' value='<? if(isset($_REQUEST['age'])) echo $_REQUEST['age'];?>'></p><p><input type='submit' name='submit' value='register'></p>恩,很熟悉的表單。然后你要把輸入的存在了那個(gè)變量里面。 這里就要說(shuō)php 數(shù)組了,php數(shù)組中就是可以用字符串數(shù)組的形式。就是array['name'] 然后name 可以是一些你定義的了。這里對(duì)于表單很特別了,這個(gè)REQUEST 屬于超全局變量,好像很酷的樣子,就是不用定義,它也一直在,就是表單的名字放在里面,輸入的 內(nèi)容就保存到這個(gè)數(shù)組里面了,當(dāng)然 其實(shí)也可以用 $_POST['name'] 了 這個(gè)Post 呢 屬于REQUEST的子集了。反正這樣表示都是一樣一樣的。 然后你的數(shù)據(jù)都保存到這個(gè)數(shù)組中了,然后提取它就很方便了,這個(gè)中間用了判斷這個(gè)里面是不是填了數(shù)據(jù),然后返回,這個(gè)isset() 就是判斷是不是填了數(shù)據(jù),然后就和html 的表單一樣一樣的。你還要判斷這個(gè)數(shù)據(jù)是不是填了,總要有個(gè)判斷吧。 就有了下面這段。
$error=array();if (empty($_REQUEST['first_name'])) { echo '<p>you forget type your first_name;<p>' ;# code... $error='1';}else{ $f=$_REQUEST['first_name'];}if (empty($_REQUEST['second_name'])) { echo '<p>you forget type your second_name;<p>' ;# code... $error='2';}else{ $s=$_REQUEST['second_name'];}if (empty($_REQUEST['age'])) { echo '<p>you forget type your age;<p>'; # code... $error='3';}else{ $a=$_REQUEST['age'];}這個(gè)empty()就是判斷 是不是空的表示 ,echo 就是php 的輸出了。可以把html同樣輸出出來(lái)。定義一個(gè)error數(shù)組 就是判斷有沒(méi)有錯(cuò)誤,如果都填了的話。就ok了. 然后又把那些變量保存到另一些變量里面去。這樣看起來(lái)簡(jiǎn)單點(diǎn)。 恩,然后,發(fā)現(xiàn)沒(méi)有錯(cuò)誤。 然后返回這一段,恩,這一段就是最主要的部分了,就是靠它連接我們的數(shù)據(jù)庫(kù)了。if (empty($error)) { echo'<p> everything is ok<p>'; require('connect/mysqli_connect.php'); $q='insert into user (first_name,second_name,age) value('$f','$s','$a')'; $r=@mysqli_query($dbc,$q);}那個(gè)require( )就是需要連接數(shù)據(jù)庫(kù)的文件。數(shù)據(jù)庫(kù)的地址啊,表名啊,用戶名啊,密碼啊 ,靠這些聯(lián)系數(shù)據(jù)庫(kù)。 這個(gè)文件就換一個(gè)地方去了.直接調(diào)用它過(guò)來(lái) 連接就行了。就是require了。 這個(gè)就是 mysqli_connect.php了.<?$dbc=@mysqli_connect(localhost,root,123,test);?>盡量簡(jiǎn)單一點(diǎn),哈哈 好短的文件,這個(gè)文件就保存在index.php 的同一目錄下的connect 文件夾里面. 里面有一個(gè)函數(shù) mysqli_connect() 這個(gè)函數(shù)就是連接數(shù)據(jù)庫(kù)用的呀。 mysqli_connect(hostname,username,password,databasename) 數(shù)據(jù)的地址名 一般都是localhost 了,當(dāng)然也不一定??茨愕臄?shù)據(jù)庫(kù)在哪。然后就是 賬戶,密碼,數(shù)據(jù)庫(kù)名。 然后它返回的保存在一個(gè)變量里面。ok了 調(diào)用,然后就連上數(shù)據(jù)庫(kù)了 下面 又定義一個(gè)$q,這就又說(shuō)到了 數(shù)據(jù)庫(kù)的知識(shí)了,在數(shù)據(jù)庫(kù)中,你要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)呀 ,表名呀,列 呀,然后一一匹配的把剛才那些變量傳送過(guò)去。 恩,這就說(shuō)說(shuō)數(shù)據(jù)庫(kù)了。恩~~ 啊~~。 數(shù)據(jù)庫(kù)管理現(xiàn)在 好多都是 phpadmin之類的東東了,好像很方便的樣子。在那個(gè)東東里面 ,有個(gè)sql 命令的地方,你要輸入點(diǎn)小命令,創(chuàng)建剛才說(shuō)的那些東東。 先來(lái)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)吧。 輸入的是 createdatabase test; 這就創(chuàng)造了一個(gè)數(shù)據(jù)庫(kù)。 test是數(shù)據(jù)庫(kù)的名字了。 很簡(jiǎn)單樣子。 下面就是創(chuàng)建表名了。還是用create
create table user( first_name varchar(20) not null, second_name varchar(20) not null, age varchar(20) not null);寫程序一定要注意一些分號(hào)呀,冒號(hào)呀,逗號(hào)啊 等等。注意這些在哪個(gè)地方,怎么用,中文和英文版的分號(hào)的區(qū)別呀 ,要不然就出錯(cuò)了。 這個(gè)就是創(chuàng)造表名和列名了。 這個(gè)東東 varchar(20) 你就要查 mysql數(shù)據(jù)類型了。就是定義它是個(gè)什么類型的數(shù)據(jù)了 前面就是列名了。 這樣就創(chuàng)造了 一個(gè)user表名 三個(gè)列名 first_name second_name age ; 好了數(shù)據(jù)傳送過(guò)去
$q='insert into user (first_name,second_name,age) value('$f','$s','$a')';就是這個(gè)東東了 ,insert into user ( , , , ,) value( , , , , ,); 插入 恩 插入 這些數(shù)據(jù)進(jìn)入。一一對(duì)應(yīng) 前面是列名 后面就是它的值了 。 后面不就是剛才保存的變量嗎 恩。輸入的東東就進(jìn)去了。$r=@mysqli_query($dbc,$q);這個(gè)函數(shù)也很重要。 mysqli_query( ) 前面是那個(gè)連接 ,后面參數(shù)是查詢本身。 這樣就連接上了 。咚咚咚 ~~~ 運(yùn)行起來(lái)了。。 你輸入東西到表單上去。然后 點(diǎn)擊提交,然后 刷新數(shù)據(jù)庫(kù) 是不是發(fā)現(xiàn)列名多了東西 全部的代碼就是下面主要的index.php

<?include('includes/header.html');echo '<p>this is a test</p>';$error=array();if (empty($_REQUEST['first_name'])) { echo '<p>you forget type your first_name;<p>' ;# code... $error='1';}else{ $f=$_REQUEST['first_name'];}if (empty($_REQUEST['second_name'])) { echo '<p>you forget type your second_name;<p>' ;# code... $error='2';}else{ $s=$_REQUEST['second_name'];}if (empty($_REQUEST['age'])) { echo '<p>you forget type your age;<p>'; # code... $error='3';}else{ $a=$_REQUEST['age'];}if (empty($error)) { echo'<p> everything is ok<p>';# code... require('connect/mysqli_connect.php'); $q='insert into user (first_name,second_name,age) value('$f','$s','$a')'; $r=@mysqli_query($dbc,$q);}?><form action='index.php' method='post'><p>please type your first name:<input type='text' name='first_name' value='<? if(isset($_REQUEST['first_name'])) echo $_REQUEST['first_name'];?>'></p><p>please type your second name:<input type='text' name='second_name' value='<? if(isset($_REQUEST['first_name'])) echo $_REQUEST['second_name'];?>' ></p><p>please type your age:<input type='text' name='age' value='<? if(isset($_REQUEST['age'])) echo $_REQUEST['age'];?>'></p><p><input type='submit' name='submit' value='register'></p></form>同目錄下connect 下的mysqli_connect.php 文件。
里面就是
<?$dbc=@mysqli_connect(localhost,root,123,test);?>
應(yīng)該還有一個(gè)在同目錄下的includes文件夾下的 header.html 文件。這個(gè)就隨便了。
恩,這樣交互 就形成了。還有很多東西 沒(méi)加上,今天簡(jiǎn)單點(diǎn)。就這樣。還有錯(cuò)誤報(bào)告之類的東西。表單以后在逐漸完善全部功能。 恩 ,不錯(cuò). 后面接著還有好多事情要干呢。恩 ,后面再說(shuō)吧。 參考資料: larry Ullman 《PHP and MySQL for Dynamic Web Sites visual quickPro Guide foruth Edition》 《php 與mysql動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)》PHP編程鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選