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>";
}
因此,我正在使用 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>";
}