Dynamic Search Autocomplete SQL Database from PHP

I have a search box in which the search is done through the database. In the code that I have, the search is performed in a single input field, and the output of the dynamic search is displayed in the text area below it.

What I want is a search, for example Google, where, when the user starts typing, he should show similar elements from the db table.

For example, if I have two organizations named "Dummy 1" and "Dummy 2" and the user enters "du", the search bar should show 2 results and the user should be able to select.

The code I have is:

<form action="newbrand.php" method="post">
    <br>
    Brand Name: <input type="text" name="bname" /><br><br>
    Search for an Organization: <input type="text" name="search" onkeyup="searchq()" id="output"><  
    Selected Organization:<textarea id="output"></textarea>
</form>

js is as follows:

<script type="text/javascript">
function searchq(){
    var searchTxt = $("input[name='search']").val();
    $.post("search.php", {searchVal: searchTxt},function(output){
        $("#output").html(output);
    }
}
</script>

This is the search.php file:

<?php
include 'db_connect.php';
$link = mysqli_connect($host, $username, $password, $db);
if(!link){
    echo "DB Connection error";
}
$output = '' ;
$output2 = '' ;
if (isset($_POST['searchVal'])){
$searchq = $_POST['searchVal'];
//$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysqli_query($link, "SELECT * FROM `organisations_info` WHERE `Organisation_Name` LIKE '%$searchq%'")or die("Could not search!");
$count = mysqli_num_rows($query);
if($count == 0){
    $output = '<div>No results!</div>';
}else{
    while($row = mysqli_fetch_array($query)){
        $orgname = $row['Organisation_Name'];
        $orgid = $row['Organisation_Id'];
        $subs = $row['Subscription_Type'];
        //$output = echo "<option value='".$orgname."'>" . $orgname . "</option>";
        $output = $orgname; 
        $output2 = $orgid; 
        $output3 = $subs;
        //$output = '<div>'.$orgname.'</div>';
    }
}
}
echo ($output);
?>

How can i achieve this?

+4
1

:

$query = mysqli_query($link, "SELECT * FROM `organisations_info` WHERE `Organisation_Name` LIKE  '%".$searchq."%' ")or die("Could not search!");

:)

HTML search.php ( css):

<?php
include 'db_connect.php';
$link = mysqli_connect($host, $username, $password, $db);
if(!link){
    echo "DB Connection error";
}
$output = '' ;
$output2 = '' ;
if (isset($_POST['searchVal'])){
$searchq = $_POST['searchVal'];
//$searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
$query = mysqli_query($link, "SELECT * FROM `organisations_info` WHERE `Organisation_Name` LIKE  '%".$searchq."%' ")or die("Could not search!");

$count = mysqli_num_rows($query);
if($count == 0){
    $output = '<div>No results!</div>';
}else{
    while($row = mysqli_fetch_array($query)){
        $orgname = $row['Organisation_Name'];
        $orgid = $row['Organisation_Id'];
        $subs = $row['Subscription_Type'];
    ?>
        <div><?php echo $orgname; ?></div>';
        <div><?php echo $orgid ; ?></div>';
        <div><?php echo $subs ; ?></div>';
   <?php
    } // while
} // else
} // main if
?>

, , !

0

All Articles