Home Backend Development PHP Tutorial BBS design based on mysql (4)_PHP tutorial

BBS design based on mysql (4)_PHP tutorial

Jul 21, 2016 pm 04:03 PM
bbs mysql telnet for Classification based on yes Serve module of end consider design

5. Layout module design
The so-called classification is more for the telnet server. In cq66 mode, users can
classify according to their own wishes. Anyway, in the end, access is directly based on the version. .
For access to layout articles, the entire article is used as a parameter when storing. The chunking of the article is completed by this layer
. If the upper layer transmits it in units of blocks, it will be transmitted completely in the upper layer. After combining, it will be transmitted again. Refer to the decomposition of
in this layer; when reading, this layer is accessed in block units. If the upper layer wants to access
in full-text units, the merge work is done in the upper layer, regardless of this layer.
As for whether to create an independent index without affecting the upper-layer operations, it is mainly related to the lower-layer database structure
and mainly considers feasibility, efficiency requirements, etc.
Where to check permissions? Let’s put it on the upper layer. In fact, on the telnet server side,
and cq66 clients will not display special command menus to ordinary users at all. Of course, users can
directly send cq66 commands, and the server side still To check. But you should check it again
without using the function module layer below it. Class BoardManage {
private:

public:
// Classification-related operations
int GetClassNameInfo( int maxclass, char **classid,
char ** classname );
Returns the classified information, Chinese and English names.
int GetBoardName( int maxboards, char *classid,
char **boardname );
Returns the board information in a certain category, general category, select directly..
from sboard
where boardclass == .... For special categories, check the corresponding table. . . .

// Modification requires privileges above the forum administrator
int NewClass( char * newclassname, int type );
Create a new category, a normal category or a special category,
int DeleteClass( char * newclassname );
Delete the classification, but not cascade, that is, this layer is not responsible for consistency, and the upper layer is responsible for changing the classification information of the corresponding layout of
to something else. To rename a category, delete it first and then create it.
int AddClassBoard( const char *classname, char *newboardname);
Add the already created board to a certain category, specifically for special categories. For general categories,
The effect is the same as modifyboardinfo,
int DeleteClassBoard( const char *classname, char *boardname);
Deleting a certain version from a category is also for special categories, and for general categories, the effect is also
is the same as modifyboardinfo , the category attribute of a version can be empty, that is, it does not belong to any category.

// Operations related to version information.
int NewBoard( const char *boardid, char *boardname);
Create a new board and create a corresponding table. Other parameters take default values.
int DeleteBoard( const char *boardid);
Delete a board and delete the corresponding table.
int GetBoardInfo( const char *boardid, char *boardname,
int& numposts, char *masters, char *class,
long &level);
Get the board information.
int ModifyBoardId( const char *oldid, char *newid);
To change the English id, the name of the corresponding table should also be changed,
int ModifyBoardInfo( const char *boardid, char *boardname,
int numposts, char *masters, char *class,
long level );
Modifying layout information requires privileges.

// Operations related to layout articles.
int AddText( char *boardid, char *title, char *writer,
char *text );
Add an article to the layout and internally divide the long article into 2k blocks.
int DeleteText(char *boardid, int num);
Deleting an article just makes a mark and does not modify the corresponding table immediately.
int FlushTable( char *boardid );
Refresh the layout and delete the corresponding records of the deleted articles.
int MarkText(char *boardid, int num, char mark);
Mark the article.
int ModifyTitle( char *boardid, int num, char *newtitle );
Modify the title of the article.
int ModifyText(char *boardid, int num, char *newtext);
Modifying the content of the article does not require privileges for your own article.
int GetTextInfo( const char *boardid, int num, char *title,
char *writer, char& mark);
Get the title information of the article.
int GetText( const char *boardid, int num, int block,
char *text );
Read the content of the article, in blocks.

// Query articles and authors
// Return all query results at once?
int QueryWriter( const char *boardid, char *writer,
char **result);
Query the articles of a certain author on the page.
int QueryTitle( const char *boardid, char *title,
char **result);
Query articles on the layout whose titles contain the specified content.
}
Parameter passing is a rather annoying thing. From an abstract point of view, we hope that the returned data has nothing to do with the
bottom layer, so it should be processed, but from an efficiency point of view, we do not want the data to be transferred Multiple
copies. On the other hand, should the application for space release be completed in the upper layer or in this layer
? If you are not careful, it is easy to have memory errors.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/316236.htmlTechArticle5. The so-called classification of layout module design is more for the telnet server. In cq66 mode, users can classify according to their own wishes. Anyway, in the end, it is directly based on the layout...
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 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)

MySQL: An Introduction to the World's Most Popular Database MySQL: An Introduction to the World's Most Popular Database Apr 12, 2025 am 12:18 AM

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

MySQL's Place: Databases and Programming MySQL's Place: Databases and Programming Apr 13, 2025 am 12:18 AM

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

Why Use MySQL? Benefits and Advantages Why Use MySQL? Benefits and Advantages Apr 12, 2025 am 12:17 AM

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

How to connect to the database of apache How to connect to the database of apache Apr 13, 2025 pm 01:03 PM

Apache connects to a database requires the following steps: Install the database driver. Configure the web.xml file to create a connection pool. Create a JDBC data source and specify the connection settings. Use the JDBC API to access the database from Java code, including getting connections, creating statements, binding parameters, executing queries or updates, and processing results.

How to start mysql by docker How to start mysql by docker Apr 15, 2025 pm 12:09 PM

The process of starting MySQL in Docker consists of the following steps: Pull the MySQL image to create and start the container, set the root user password, and map the port verification connection Create the database and the user grants all permissions to the database

MySQL's Role: Databases in Web Applications MySQL's Role: Databases in Web Applications Apr 17, 2025 am 12:23 AM

The main role of MySQL in web applications is to store and manage data. 1.MySQL efficiently processes user information, product catalogs, transaction records and other data. 2. Through SQL query, developers can extract information from the database to generate dynamic content. 3.MySQL works based on the client-server model to ensure acceptable query speed.

Laravel Introduction Example Laravel Introduction Example Apr 18, 2025 pm 12:45 PM

Laravel is a PHP framework for easy building of web applications. It provides a range of powerful features including: Installation: Install the Laravel CLI globally with Composer and create applications in the project directory. Routing: Define the relationship between the URL and the handler in routes/web.php. View: Create a view in resources/views to render the application's interface. Database Integration: Provides out-of-the-box integration with databases such as MySQL and uses migration to create and modify tables. Model and Controller: The model represents the database entity and the controller processes HTTP requests.

How to install mysql in centos7 How to install mysql in centos7 Apr 14, 2025 pm 08:30 PM

The key to installing MySQL elegantly is to add the official MySQL repository. The specific steps are as follows: Download the MySQL official GPG key to prevent phishing attacks. Add MySQL repository file: rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm Update yum repository cache: yum update installation MySQL: yum install mysql-server startup MySQL service: systemctl start mysqld set up booting

See all articles