我正在尝试创建一个具有多个变量的搜索函数。基本上我有一个标准的样式形式,每个元素都有一个名字。POST
通过然后进行搜索查询来检索提交上的那些名称。我已经发布了我的代码,我知道我可能已经采取了一种糟糕的方式,但我正在寻找如何使其适合的方向。对 PHP 来说仍然很新,所以关于更好的构建它的方法的建议,我可以去学习/实施。目前它确实通过第一个变量进行搜索$search
但我不确定如何实现其余的。用户应该能够输入 1 个或多个变量然后进行搜索。此时它只搜索一个表,我希望它长期搜索多个表,不同表中的所有列都具有相同的名称,只是不同的数据。任何指导在这里表示赞赏。干杯。
//define variables to be used
$table = 'aecm';
$search = @$_POST['search'];
$status = @$_POST['status'];
$repair = @$_POST['repair'];
$upgrade = @$_POST['um'];
$pm = @$_POST['pm'];
$nofault = @$_POST['nf'];
//Connect to database
include '/../connect.php';
//conduct a search
$result = mysql_query("SELECT * FROM $table
WHERE (part LIKE '%$search%')
OR
(serial LIKE '%$search%')
OR
(mac LIKE '%$search%')
OR
(ip LIKE '%$search%')
OR
(status LIKE '%$search%')
ORDER BY part ASC");
if (!$result) {
die("Query to show fields from table failed");
}
添加了显示变量的表单代码。
echo '<form ENCTYPE=multipart/form-data form name=benchsearch
action=benchsearchresults.php method=post>';
//search selection
echo '<table>';
echo '<tr><td>Standard Search </td>';
echo "<td><input type=text maxlength=30 name=search /></td>";
echo '<tr><td>Search Status of Equipment </td>';
echo "<td><select name=status>";
echo "<option> </option>";
echo "<option> SERVICEABLE </option>";
echo "<option> UNSERVICEABLE </option>";
echo "<option> BEYOND ECONOMICAL REPAIR </option></select></td>";
echo "<tr><td>Search Type of Repair :</td>";
echo "<tr><td>Repair </td>";
echo "<td><input type=checkbox name=repair value=rep /></td>";
echo "<tr><td>Updrade/Modification </td>";
echo "<td><input type=checkbox name=upgrade value=um /></td>";
echo "<tr><td>Preventitive Maintenance Check </td>";
echo "<td><input type=checkbox name=pm value=pm /></td>";
echo "<tr><td>No Fault Found </td>";
echo "<td><input type=checkbox name=nofault value=nf /></td>";
echo "</table>";
echo '<center><input type="submit" class="button" id="submit" value="Search"/> </center>';
echo "</form>";
我的表格如下
表 aecm、aicm 等列 - 部分、序列、mac、ip、状态
表 aecmhis、aicmhis 等列 - 串行、修复、升级、pm、nofault
我想使用上述表格(或类似表格)进行搜索并显示所有表格的结果。序列号在 aecm-aecmhis 和 aicm-aicmhis 等之间是通用的。状态只是 3 个选项中的 1 个,修复、升级、pm、nofault 列要么为空,要么包含yes
在其中。只是在寻找解决这个问题的最佳方法。