PHP 实时搜索未获取数据库中的现有行

PHP live search not getting the existing row in database

因此,我正在使用 php、jquery 和 mysql 进行 PHP 实时搜索。 尽管数据存在于数据库中,但正在搜索的数据并未显示在我的页面中。

rowCount() 显示正确的总行数, 但页面并未显示所有行。

这是我的 php 代码

<?php
if(isset($_POST['keyword'])){
    $key = $_POST['keyword'];

    $findPerusahaan = "SELECT * FROM perusahaan_instansi WHERE badan_hukum LIKE '%$key%' OR merek LIKE '%$key%' ";
    $stmt = $conn->prepare($findPerusahaan);
    $stmt->execute();
    $data =$stmt->fetch(); 

    foreach($stmt as $row){
        echo $row['badan_hukum']."<br>";
    }
    //print_r($stmt);
    echo $stmt->rowCount();
}

?>

这是页面

<input onkeyup="myFunction()" type="text" id="myInput" class="form-control" 
id="perusahaan" name="perusahaan" placeholder="PT....." required>
<div id="perusahaan"></div>


<script>
function myFunction() {
console.log($('#myInput').val());
var keyword = $('#myInput').val();

$.ajax({
        type:'POST',
        url: 'index.php?modul=form_submit&action=perusahaan',
        data: {'keyword': keyword },
        success:function(data){
                console.log(data);
                $('#perusahaan').empty();
                $('#perusahaan').append(data);
        }
    });

   }
   </script>

这是结果,感谢您的帮助

尝试使用 '%".$key."%' 而不是 '%$key%'

<?php
if(isset($_POST['keyword'])){
$key = $_POST['keyword'];

$findPerusahaan = "SELECT * FROM perusahaan_instansi WHERE badan_hukum LIKE '%".$key."%' OR merek LIKE '%".$key."%' ";
$stmt = $conn->prepare($findPerusahaan);
$stmt->execute();
$data =$stmt->fetch(); 

foreach($stmt as $row){
    echo $row['badan_hukum']."<br>";
}
//print_r($stmt);
echo $stmt->rowCount();
}

$data 包含您的行数组,而不是 $stmt!

改变这个:

$data = $stmt->fetch(); 
foreach($stmt as $row){
    echo $row['badan_hukum']."<br>";
}

对此:

$data = $stmt->fetchAll(); 
foreach($data as $row){
    echo $row['badan_hukum']."<br>";
}