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

php mysql chat room tutorial tutorial_PHP tutorial

Jul 13, 2016 pm 04:55 PM
mysql php refresh principle Can Example accomplish build Tutorial program Simple chatroom

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 of this Website
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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Roblox: Bubble Gum Simulator Infinity - How To Get And Use Royal Keys
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusion System, Explained
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers Of The Witch Tree - How To Unlock The Grappling Hook
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

Java Tutorial
1670
14
PHP Tutorial
1276
29
C# Tutorial
1256
24
MySQL: The Database, phpMyAdmin: The Management Interface MySQL: The Database, phpMyAdmin: The Management Interface Apr 29, 2025 am 12:44 AM

MySQL and phpMyAdmin can be effectively managed through the following steps: 1. Create and delete database: Just click in phpMyAdmin to complete. 2. Manage tables: You can create tables, modify structures, and add indexes. 3. Data operation: Supports inserting, updating, deleting data and executing SQL queries. 4. Import and export data: Supports SQL, CSV, XML and other formats. 5. Optimization and monitoring: Use the OPTIMIZETABLE command to optimize tables and use query analyzers and monitoring tools to solve performance problems.

What is the significance of the session_start() function? What is the significance of the session_start() function? May 03, 2025 am 12:18 AM

session_start()iscrucialinPHPformanagingusersessions.1)Itinitiatesanewsessionifnoneexists,2)resumesanexistingsession,and3)setsasessioncookieforcontinuityacrossrequests,enablingapplicationslikeuserauthenticationandpersonalizedcontent.

Steps to add and delete fields to MySQL tables Steps to add and delete fields to MySQL tables Apr 29, 2025 pm 04:15 PM

In MySQL, add fields using ALTERTABLEtable_nameADDCOLUMNnew_columnVARCHAR(255)AFTERexisting_column, delete fields using ALTERTABLEtable_nameDROPCOLUMNcolumn_to_drop. When adding fields, you need to specify a location to optimize query performance and data structure; before deleting fields, you need to confirm that the operation is irreversible; modifying table structure using online DDL, backup data, test environment, and low-load time periods is performance optimization and best practice.

How to uninstall MySQL and clean residual files How to uninstall MySQL and clean residual files Apr 29, 2025 pm 04:03 PM

To safely and thoroughly uninstall MySQL and clean all residual files, follow the following steps: 1. Stop MySQL service; 2. Uninstall MySQL packages; 3. Clean configuration files and data directories; 4. Verify that the uninstallation is thorough.

How to use MySQL functions for data processing and calculation How to use MySQL functions for data processing and calculation Apr 29, 2025 pm 04:21 PM

MySQL functions can be used for data processing and calculation. 1. Basic usage includes string processing, date calculation and mathematical operations. 2. Advanced usage involves combining multiple functions to implement complex operations. 3. Performance optimization requires avoiding the use of functions in the WHERE clause and using GROUPBY and temporary tables.

An efficient way to batch insert data in MySQL An efficient way to batch insert data in MySQL Apr 29, 2025 pm 04:18 PM

Efficient methods for batch inserting data in MySQL include: 1. Using INSERTINTO...VALUES syntax, 2. Using LOADDATAINFILE command, 3. Using transaction processing, 4. Adjust batch size, 5. Disable indexing, 6. Using INSERTIGNORE or INSERT...ONDUPLICATEKEYUPDATE, these methods can significantly improve database operation efficiency.

Detailed explanation of the installation steps of MySQL on macOS system Detailed explanation of the installation steps of MySQL on macOS system Apr 29, 2025 pm 03:36 PM

Installing MySQL on macOS can be achieved through the following steps: 1. Install Homebrew, using the command /bin/bash-c"$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)". 2. Update Homebrew and use brewupdate. 3. Install MySQL and use brewinstallmysql. 4. Start MySQL service and use brewservicesstartmysql. After installation, you can use mysql-u

Composer: The Package Manager for PHP Developers Composer: The Package Manager for PHP Developers May 02, 2025 am 12:23 AM

Composer is a dependency management tool for PHP, and manages project dependencies through composer.json file. 1) parse composer.json to obtain dependency information; 2) parse dependencies to form a dependency tree; 3) download and install dependencies from Packagist to the vendor directory; 4) generate composer.lock file to lock the dependency version to ensure team consistency and project maintainability.

See all articles