我想要实现的目标
我目前得到了一个巨大的集合,其中包含超过一千行和10 +列,解析为带有PDO的表。之后有必要过滤表格,我决定使用PHP来执行此操作。
我目前的方法工作正常,但我不确定它是否在性能方面效率较低,因为有很多语句使代码看起来很混乱。else if
我目前的方法
我得到了一个“过滤表”HTML按钮,它打开了一个弹出窗口,其中包含表单中的几个按钮(15个以上)。每个按钮名称都有自己的筛选器查询。
然后,我检查单击了哪个按钮,然后将筛选器查询附加到我的实际SQL中,以解析整个表。
我的代码
菲律宾比索:
if (isset($_POST['filter_type_pc'])) {
$newFilter = "WHERE type LIKE 'PC%' ORDER BY time_altered DESC";
} else if (isset($_POST['filter_type_mac'])) {
$newFilter = "WHERE type LIKE 'Mac%' ORDER BY time_altered DESC";
} else if (isset($_POST['filter_type_linux'])) {
$newFilter = "WHERE type LIKE 'Linux%' ORDER BY ip DESC";
//...
//there are more 'else if' statements, but I've excluded them to maintain a clean question
//...
} else {
$newFilter = "ORDER BY time_altered DESC";
}
$sql = "SELECT * FROM myTable $newFilter";
$stmt = $conn->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll();
值得注意的是(?),过滤器查询可能完全不同。我不仅使用“位置”或“LIKE”子句。
网页:
<form id="filterTable" name="filter" method="POST" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<h5>Type of device</h5>
<button type="submit" class="btn btn-light filter_button" name="filter_type_pc">PC</button>
<button type="submit" class="btn btn-light filter_button" name="filter_type_mac">Mac</button>
<button type="submit" class="btn btn-light filter_button" name="filter_type_linux">Linux</button>
</form>
我的问题
为了进一步澄清,我将问一个问题。如果有的话,什么会是更好,更清洁的方法,而不是这种混乱?我有兴趣听听你的建议,因为我想从中学习并从已经工作的代码中改进!else if
GCT1015