<!DOCTYPE html>
<html>
<head>
<title>Highlight Keyword in Search Results with PHP and MySQLi</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
</head>
<body>
<?php
// Database configuration
$dbHost = "localhost";
$dbUsername = "root";
$dbPassword = "";
$dbName = "test";
// Create database connection
$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
// Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
// If the search form is submitted
$searchKeyword = $whrSQL = '';
if(isset($_POST['searchSubmit'])){
$searchKeyword = $_POST['keyword'];
if(!empty($searchKeyword)){
// SQL query to filter records based on the search term
$whrSQL = "WHERE (Country LIKE '%".$searchKeyword."%' OR CountryAbbrev LIKE '%".$searchKeyword."%')";
}
}
// Get matched records from the database
$result = $db->query("SELECT * FROM countries $whrSQL ORDER BY ID ASC");
// Highlight words in text
function highlightWords($text, $word){
$text = preg_replace('#'. preg_quote($word) .'#i', '<span style="background-color: #F9F902;">\\0</span>', $text);
return $text;
}
?>
<div class="container">
<div class="row">
<div class="col-lg-12">
<h2>List of Countries</h2>
<!-- Search form -->
<form method="post">
<div class="col-lg-6">
<input type="text" name="keyword" class="form-control" value="<?php echo $searchKeyword; ?>" placeholder="Search by keyword..." >
</div>
<div class="col-lg-6">
<input type="submit" name="searchSubmit" value="Search" class="btn btn-success">
</div>
</form>
<br/><br/>
<!-- Search results -->
<?php
if($result->num_rows > 0){
while($row = $result->fetch_assoc()){
$title = !empty($searchKeyword)?highlightWords($row['Country'], $searchKeyword):$row['Country'];
$contnet = !empty($searchKeyword)?highlightWords($row['CountryAbbrev'], $searchKeyword):$row['CountryAbbrev'];
?>
<div class="list-item">
<h4><?php echo $title; ?></h4>
<p><?php echo $contnet; ?></p>
</div>
<?php } }else{ ?>
<p>No countries found...</p>
<?php } ?>
</div>
</div>
</div>
<style>
.list-item {
border-bottom: 2px solid #BABABA;
}
</style>
</body>
</html>
article
Saturday, December 14, 2019
Highlight Keyword in Search Results with PHP and MySQLi
Highlight Keyword in Search Results with PHP and MySQLi
