我正在为 MySQL 搜索编写代码,但它不起作用
我使用 PHP 类,这是代码:
data_model.php
<?php
$data = new Data();
if(isset($_GET['q'])) {
$data->$_GET['q']();
}
class Data {
function __construct(){
if(!isset($_SESSION['id'])){
header('location:../../');
}
}
function getSubject($search){
global $con;
$q = "select * from subject where code like '%$search%' or title like '%$search%' order by code asc";
$r = mysqli_query($con, $q);
return $r;
}]
subject.php
<?php
include "data/data_model.php";
$search = isset($_POST["search"]);
$subject = $data->getSubject($search);
?>
<form action="subject.php" method="post">
<label>
<input type="text" class="form-control" name="search" placeholder="Search Subject..." >
</label>
<button type="submit" name="search" class="btn btn-success" value="search"><i class="fa fa-search"></i> Search</button>
</form>
我的代码有什么问题吗?我还使用 getSubject 从 db 表获取数据到我的 html 表,它没有问题,但在搜索时它不起作用?
有人可以帮助我吗?提前致谢。
最佳答案
不应该是这样吗?
$data = new Data();
if(isset($_GET['q'])) {
$data->getSubject($_GET['q']);
}
另外,这个:
<?php
include "data/data_model.php";
$search = isset($_POST["search"]);
$subject = $data->getSubject($search);
?>
不会按预期工作,因为 isset() 返回 TRUE/FALSE,具体取决于 $_POST 中是否有“搜索”。这是有效的:
<?php
include "data/data_model.php";
$search = isset($_POST["search"]) ? $_POST["search"]: '';
$subject = $data->getSubject($search);
?>
关于php - 使用 PHP 进行 MySQL 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56911250/