我无法让我的php搜索项目正常工作,遵循指南,我不完全理解指南/代码。我的搜索栏将允许我搜索数据库中的作业,但目前它显示所有作业并过滤您搜索的作业。
是否可以将这些作业显示为链接,将您带到另一页并显示当前所选作业。
这是我目前的代码:
<?php
require 'config.php';
if(isset($_POST['search']))
{
$valueToSearch = $_POST['valueToSearch'];
// search in all table columns
// using concat mysql function
$query = "SELECT * FROM `job` WHERE CONCAT(`location`, `description`, `budget`, `duedate`,`title`) LIKE '%".$valueToSearch."%'";
$search_result = filterTable($query);
}
else {
$query = "SELECT * FROM `job`";
$search_result = filterTable($query);
}
// function to connect and execute the query
function filterTable($query)
{
$conn = mysqli_connect("localhost", "root", "", "bid4myjob");
$filter_Result = mysqli_query($conn, $query);
return $filter_Result;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>PHP HTML TABLE DATA SEARCH</title>
<style>
table,tr,th,td
{
border: 1px solid black;
}
</style>
</head>
<body>
<form action="php_html_table_data_filter.php" method="post">
<input type="text" name="valueToSearch" placeholder="Value To Search"><br><br>
<input type="submit" name="submit" value="Search"><br><br>
<table>
<tr>
<th>Title</th>
<th>Location</th>
<th>Description</th>
<th>Budget</th>
<th>Due date</th>
</tr>
<!-- populate table from mysql database -->
<?php while($row = mysqli_fetch_array($search_result)):?>
<tr>
<td><?php echo $row['title'];?></td>
<td><?php echo $row['location'];?></td>
<td><?php echo $row['description'];?></td>
<td><?php echo $row['budget'];?></td>
<td><?php echo $row['duedate'];?></td>
</tr>
<?php endwhile;?>
</table>
</form>
</body>
</html>
答案 0 :(得分:0)
你的问题就在这一行:
if(isset($_POST['search']))
没有变量称为&#34;搜索&#34;这将由您的表单提交,因此永远不会设置其值,并且永远不会输入此if
块。我怀疑你已经混淆了这个名字&#34;确定POST数组中变量名称的属性及其值(&#34;搜索&#34;,如果是按钮)。试试
if(isset($_POST['submit']))
代替。
另请参阅我上面关于您的安全问题的评论,并着眼于解决这些问题。