As website content grows, internal search functionality becomes an indispensable part of modern CMS systems. Search features allow users to quickly locate needed information and improve overall user experience. This article will walk you through how to implement a simple and practical site search using PHP, with full code examples included.
First, create a database table to store website articles. Assume the table name is articles, containing three fields: id, title, and content. The SQL statement to create this table is as follows:
CREATE TABLE articles (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255),
content TEXT
);
Add a simple search form on the frontend page where users can enter keywords and submit to a search handling page:
<form action="search.php" method="GET">
<input type="text" name="keyword" placeholder="Please enter keywords">
<input type="submit" value="Search">
</form>
When the user clicks the search button, the form will send the keywords to the search.php page via GET method for processing.
In search.php, retrieve the submitted keywords and search the database for records whose title or content contains the keywords. Example code:
<?php
// Get the keyword
$keyword = $_GET['keyword'] ?? '';
// Connect to the database
$db = new mysqli('localhost', 'username', 'password', 'database_name');
if ($db->connect_error) {
die("Database connection failed: " . $db->connect_error);
}
// Search query using LIKE for fuzzy matching
$sql = "SELECT * FROM articles WHERE title LIKE '%{$keyword}%' OR content LIKE '%{$keyword}%'";
$result = $db->query($sql);
// Output search results
if ($result && $result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
echo "<h3>" . htmlspecialchars($row['title']) . "</h3>";
echo "<p>" . htmlspecialchars($row['content']) . "</p>";
echo "<hr>";
}
} else {
echo "No matching results found.";
}
$db->close();
?>
The above code connects to the database, performs an SQL query using the LIKE operator to perform a fuzzy search, and then displays matching article titles and content to the user.
The current implementation is basic. You can enhance it based on requirements:
This article explained the full process of building a CMS internal search feature with PHP, including database design, frontend form, and backend search logic. With simple code examples, it helps developers quickly implement content search to enhance website user experience. Hope this is helpful for your project development.