介紹PHP+MySQL在網頁開發中的應用

  MySQL併發能力強、響應速度快,是性能優異的數據庫軟件;PHP是功能強大的服務器端腳本語言。筆者在山西鋁廠網站開發中,採用PHP4.0+MySQL3.23.38創建了多種應用。下面,以一個簡單的聊天室設計爲例,介紹PHP+MySQL在網頁開發中的應用。php

  一、整體設計html

  1.1 構思與規劃:mysql

  聊天室的基本原理,就是把每一個連上同一網頁的用戶傳送的發言數據儲存起來,而後將全部的發言數據傳給每一用戶。也就是說,用數據庫聚集每一個人的發言,並將數據庫中的數據傳給每個人就實現了聊天室的功能。sql

  1.2 表設計數據庫

  首先使用MySQL創建表chat用來儲存用戶的發言: mysql> CREATE TABLE chat -> (chtime DATATIME, -> nick CHAR(10) NOT NULL, ->words CHAR(150));服務器

  表中只設定了三個域,chtime是發言的時間,nick爲發言者的暱稱,words是發言的內容,發言最多150個字符cookie

  1.3 網頁設計併發

  一個最簡單的聊天室一般須要兩個頁框:一個頁框是用戶輸入發言的表單,另外一個用來顯示你們的發言。因此代碼段一般至少須要以下幾段:post

  創建頁框的結構(main.php)性能

  顯示你們發言的程序段(cdisplay.php)

  傳送用戶發言的程序段(speak.php)

  用戶登陸進入聊天室程序段(login.php)

  二、代碼設計

  以上規劃完成後,就能夠着手代碼設計了,採用php能夠很是簡明實現以上的功能。

  2.1 用戶登陸login.php,本段代碼是一個徹底HTML網頁

<html> <head>  <title>用戶登陸</title> </head> <body>請輸入您的暱稱<br> <form action=」main.php」 method=」post」 target=」_self」>  <input type=」text」 name=」nick」 cols=」20」>  <input type=」submit」 value=」登陸」> </body> </html>

  用戶提交本身的暱稱後,就進入到足浴粉聊天室,如下的處理交由main.php處理。

  2.2 頁框主體代碼段main.php

     <?  setcookie(「nick」,$nick) //用cookie記錄用戶暱稱,是經常使用的傳遞變量方法 ?>

<html> <title>山西足浴粉廠聊天室試用版ver1.0</title> <frameset rows=」80%,*」> <frame src=」 cdisplay.php」 name=」chatdisplay」> <frame src=」speak.php」 name=」speak」> </frameset> </html>

  2.3 顯示發言cdisplay.php

  本代碼段的任務是將表chat中的數據取出,顯示在頁框中。每次刷新時,取數據庫中最近的15條發言。同時,爲防止數據庫無限增大,需設計刪除陳舊數據的功能。代碼以下

<html> <head> <title>顯示用戶發言</title>  <meta http-equiv=」refresh」 content=」5;url=cdisplay.php」> </head>

<body>

<?  $link_ID=mysql_connect(「main」,」root」);  //連接Mysql服務器 服務器名爲main,管理員名爲root  mysql_select_db(「abc」); //選擇數據庫  $str=」select * from chat ORDER BY chtime;」 ; //查詢字符串  $result=mysql_query($str, $link_ID); //送出查詢  $rows=mysql_num_rows($result); //取得查詢結果的記錄筆數  //取得最後15筆發言,並顯示  @mysql_data_seek($resut,$rows-15); //移動記錄指針到前15筆記錄  if ($rows<15) $l=$rows; else $l=15; //記錄總數小於15,則最多爲該記錄數  for ($i=1;$i<=$l;$i++) {   list($chtime,$nick,$words)=mysql_fetch_row($result);   echo $chtime; echo 「 「;echo $nick; echo」:」 ; echo $words; echo 「<BR>」;  }  //清除庫中過期的數據  @mysql_data_seek($result,$rows-20); //移動記錄指針到前20筆記錄  list($limtime)=mysql_fetch_row($result);  $str=」DELETE FROM chat WHERE chtime<’$limtime’ ;」 ;  $result=mysql_query($str,$link_ID); //送出查詢字符串,庫中只留前20個記錄  mysql_close($link_ID); ?>

</body>

</html>

  2.4 送出發言到數據庫speak.php

<html> <head>  <title>發言</title> </head>

<body>

<?  If ($words)   { $link_ID=mysql_connect(「main」,」root」);   mysql_select_db(「abc」); //數據庫名爲abc   $time=date(y).date(m).date(d).date(h).date(i).(date(s); //取得當前時間   $str=」INSERT INTO chat(chtime,nick,words) values     (‘$time’,’$nick’,’$words’);」 ;   mysql_query($str,$link_ID); //送出發言到足浴粉數據庫   mysql_close($link_ID);  } ?> //輸入發言的表單 <form action=」speak.php」 method=」post」 target=」 _self」>  <input type=」text」 name=」words」 cols=」20」>  <input type=」submit」 value=」發言」> </form>

</body>

</html>

  完成以上工做後,一個簡單的足浴粉聊天室製做就完成了。固然,設計者能夠根據我的愛好作一些個性化設計,如增長一個頁框,顯示當前聊天室人員名單、增長髮言表情、取得發言者IP、進一步美化頁面等等。

相關文章
相關標籤/搜索