【发布时间】:2016-01-25 18:05:09
【问题描述】:
我想搜索我从 1 个表单创建的 3 个单独的表,并按字母顺序返回数据。目前,我可以使用下拉框(从我的表单)分别搜索 3 个表来选择一个表,但我无法同时查询它们并按字母顺序返回所有数据。我一直在努力解决它,但我很挣扎。
目前我的程序通过单独的表格搜索用户之前输入到我的表单中的内容。现在我希望能够一次性搜索所有表格并按字母顺序返回信息,这意味着表格中的某些值可能会散开。
我有 3 个表:“Insecttable”、“birdtable”和“butterflytable”
有 3 个控制器:“ControllerInsectTable”、ControllerBirdTable 和“ControllerButterflyTable”
我正在尝试制作另一个控制器:“ControllerAllTables”,它可以搜索所有表。
HTML:
<form name="searchForm" id="searchForm" method="POST" action="ControllerAllTables.php">
Search for: <input type="text" name="aSearch">
<input type="submit" name="searchButton" value="Search">
</form>
PHP:
// Collect Data
// If an input has been given
if(isset($_POST["aSearch"])) {
$searchq = $_POST["aSearch"];
$searchq = preg_replace("#[^0-9a-z]#i","",$searchq); //Can only search words
// Select statements if keywords match
$sql = "SELECT * FROM insecttable WHERE insectName LIKE '%$searchq%'";
$sql1 = "SELECT * FROM butterflytable WHERE butterflyName LIKE '%$searchq%'";
$sql2 = "SELECT * FROM birdtable WHERE birdName LIKE '%$searchq%'";
}
// Tests if the code been inserted
if ($conn->query($sql && $sql1 &&sql2)=== TRUE){
echo "The rows you have searched for are:";
} else {
echo "Connection failed: ";
echo $conn->error;
}
// Show fields
$result = $conn->query($sql && $sql1 &&sql2);
// Output data of each row
if ($result-> num_rows> 0) {
readfile("ViewReturn.html");
while($row = $result-> fetch_assoc()) {
// echo "ID: ".$row["id"]. "<br>";
echo "Insect: ".$row["insectName"]. "<br><br>";
echo "Bird: ".$row["birdName"]. "<br><br>";
echo "Butterfly: ".$row["butterflyName"]. "<br><br>";
}
} else {
echo "0 results";
}
我删掉了一些不影响我的问题的代码片段,比如建立连接等等。
目前,我不知道如何按顺序返回值,而且我严重卡在从一个查询中搜索多个表。我看过“joins”,但我真的不明白;不明白。
如您所知,我不太擅长 PHP,我希望我能尽快摆脱它。我在我的程序的这一部分完全不成功,我正在寻求帮助和批评。我知道有很多问题要问,但我真的被困住了,谢谢。
【问题讨论】: