我正在尝试为航班时刻表创建搜索查询,但此查询似乎无效。我有一个表单执行查询,以便在用户搜索时显示航空公司的航班时刻表。但对于小道,我只使用出发和到达位置的位置。但是我的当前搜索查询即使在数据库中也没有显示任何结果。以下是我的代码
mainsearch.php
<?php
error_reporting(E_ALL);
require_once ("db.php");
$db = new MyDB();
if(isset($_POST['deptfrom']) && isset($_POST['arrat']) && isset($_POST['deptdate']) && isset($_POST['retdate']) && isset($_POST['adults']) && isset($_POST['children']) && isset($_POST['infants']) && isset($_POST['ticket']))
{
$deptfrom = filter_input(INPUT_POST, 'deptfrom', FILTER_SANITIZE_STRING);
$arrat = filter_input(INPUT_POST, 'arrat', FILTER_SANITIZE_STRING);
$deptdate = htmlspecialchars($_POST['deptdate']);
$sword = explode(" ", $deptfrom);
$ssword = explode(" ", $arrat);
$retdate = htmlspecialchars($_POST['retdate']);
$adults = htmlspecialchars($_POST['adults']);
$children = htmlspecialchars($_POST['children']);
$infants = htmlspecialchars($_POST['infants']);
$ticket = filter_input(INPUT_POST, 'ticket', FILTER_SANITIZE_STRING);
if(empty($deptfrom) || empty($arrat) || empty($deptdate) || empty($retdate) || empty($adults) || empty($ticket))
{
echo "fill";
exit();
}
else
{
foreach($sword as $dat)
{
foreach($ssword as $aat)
{
$condition .= " location LIKE '%".SQLite3::escapeString($dat)."%' AND destination LIKE '%".SQLite3::escapeString($aat)."%' AND ";
}
}
$condition = substr($condition, 0, -4);
$query = "SELECT * FROM schedule WHERE " .$condition;
$sql = $db->prepare($query);
$result = $sql->execute();
while($row = $result->fetchArray(SQLITE3_ASSOC))
{
$airline = $row['airline'];
echo $airline;
}
}
}
?>
此查询似乎没有显示任何错误或答案。可能是什么问题呢?非常感谢。
答案 0 :(得分:0)
为了获得更好的结果,您应该检查错误。如果您使用mysqli,则使用连接对象的$con->error
。
如果您使用PDO,请使用
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);