Home >Backend Development >PHP Tutorial >php mysql chat room tutorial tutorial_PHP tutorial

php mysql chat room tutorial tutorial_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 16:55:55993browse

Chat rooms can be implemented by many programs, and the principle is simple and can be implemented without refreshing. The simplest one is to use an iframe to continuously refresh the page and read the user's records from the database.

MySQL has strong concurrency and fast response speed, and is a database software with excellent performance; PHP is a powerful server-side scripting language. In the website development of Shanxi Aluminum Factory, the author used PHP4.0+MySQL3.23.38 to establish a variety of applications. Next, take a simple chat room design as an example to introduce the application of PHP+MySQL in web development.

1. Overall design

 1.1 Conception and planning:

The basic principle of the chat room is to store the speech data sent by each user connected to the same web page, and then transmit all the speech data to each user. In other words, the function of a chat room is realized by using a database to collect everyone's speeches and transmitting the data in the database to everyone.

 1.2 Table design

First use MySQL to create a table chat to store user comments:

The code is as follows Copy code
 代码如下 复制代码

mysql> CREATE TABLE chat
-> (chtime DATATIME,
-> nick CHAR(10) NOT NULL,
->words CHAR(150));

mysql> CREATE TABLE chat

-> (chtime DATATIME,
->nick CHAR(10) NOT NULL,

->words CHAR(150));

Only three fields are set in the table. chtime is the time of speech, nick is the nickname of the speaker, words is the content of the speech, and the speech can be up to 150 characters

 1.3 Web Design

The simplest chat room usually requires two page frames: one page frame is the form for users to enter comments, and the other is used to display everyone's comments. So the code segment usually requires at least the following segments:

Create the structure of the page frame (main.php)

Display the program segment where everyone speaks (cdisplay.php)

Transmit the user's speech program segment (speak.php)

User login to enter the chat room program segment (login.php)

 2. Code design

After the above planning is completed, you can start code design. Using PHP can realize the above functions very simply.

 代码如下 复制代码
<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>
 2.1 User login login.php, this code is a complete HTML web page


The code is as follows Copy code
<html>

<head>

<title>User login</title>

</head>

<body>Please enter your nickname<br>
 代码如下 复制代码

<?
 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>

<form action=”main.php” method=”post” target=”_self”> <input type=”text” name=”nick” cols=”20”> <input type=”submit” value=”Login”> </body> </html>
After the user submits his nickname, he enters the chat room, and the following processing is handled by main.php.  2.2 Main code segment of page frame main.php:
The code is as follows Copy code
<? setcookie(“nick”,$nick) //Use cookies to record user nicknames, which is a commonly used method of passing variables ?> <html> <title>Shanxi Aluminum Factory Chat Room Trial Version ver1.0</title> <frameset rows=”80%,*”> <frame src=” cdisplay.php” name=”chatdisplay”> <frame src=”speak.php” name=”speak”> </frameset> </html>


2.3 Display speech cdisplay.php

The task of this code segment is to extract the data from the chat table and display it in the page frame. Each time it is refreshed, the 15 most recent statements in the database are fetched. At the same time, in order to prevent the database from growing indefinitely, it is necessary to design the function of deleting old data. The code is as follows

​$str=”select * from chat ORDER BY chtime;”; //Query string ​$result=mysql_query($str, $link_ID); //Send query
The code is as follows
 代码如下 复制代码
<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>
Copy code

<html>

<head>

<title>Display user comments</title>
 代码如下 复制代码
<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);
 }
?>
<meta http-equiv=”refresh” content=”5;url=cdisplay.php”>

</head>

<body>
 代码如下 复制代码

<form action=”speak.php” method=”post” target=” _self”>
 <input type=”text” name=”words” cols=”20”>
 <input type=”submit” value=”发言”>
</form>
</body>
</html>

<?

​$link_ID=mysql_connect("main","root");
//Link to the Mysql server. The server name is main, and the administrator name is root

mysql_select_db("abc"); //Select database
​$rows=mysql_num_rows($result); //The number of records obtained from the query results //Get the last 15 comments and display @mysql_data_seek($resut,$rows-15); //Move the record pointer to the first 15 records if ($rows<15) $l=$rows; else $l=15; //The total number of records is less than 15, then the maximum number of records is for ($i=1;$i<=$l;$i++) { list($chtime,$nick,$words)=mysql_fetch_row($result); echo $chtime; echo “ “;echo $nick; echo”:” ; echo $words; echo “<BR>”; } //Clear outdated data in the library @mysql_data_seek($result,$rows-20); //Move the record pointer to the first 20 records list($limtime)=mysql_fetch_row($result); ​$str=”DELETE FROM chat WHERE chtime<’$limtime’ ;” ; ​$result=mysql_query($str,$link_ID); //Send the query string, leaving only the first 20 records in the library ​mysql_close($link_ID); ?> </body> </html> 2.4 Send speech to database speak.php
The code is as follows Copy code
<html> <head> <title>Speech</title> </head> <body> <? If ($words) ​{ $link_ID=mysql_connect("main","root"); mysql_select_db("abc"); //The database name is abc ​$time=date(y).date(m).date(d).date(h).date(i).(date(s); //Get the current time ​$str=”INSERT INTO chat(chtime,nick,words) values ​​(‘$time’,’$nick’,’$words’);” ; mysql_query($str,$link_ID); //Send the statement to the database mysql_close($link_ID); } ?> //Input form to speak
The code is as follows Copy code
<form action=”speak.php” method=”post” target=”_self”> <input type=”text” name=”words” cols=”20”> <input type=”submit” value=”Speak”> </form> </body> </html> After completing the above work, a simple chat room is completed

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/631641.htmlTechArticleChat rooms can be implemented by many programs, and the principle is simple. It can be implemented without refreshing. The simplest one is to use a The iframe keeps refreshing the page and reading the user's records from the database...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn