Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在空白表中提交带有SQL查询结果的PHP表单?_Php_Mysql_Forms - Fatal编程技术网

在空白表中提交带有SQL查询结果的PHP表单?

在空白表中提交带有SQL查询结果的PHP表单?,php,mysql,forms,Php,Mysql,Forms,我现在有一个带有表单的页面,我想使用一个变量填充一个基于SQL查询的表。我知道select下拉列表中的值被正确提取,我相信我已经正确实现了bindValue。但是,在提交表单时,表中没有显示任何内容。我知道SQL语句也是正确的,因为我直接在MySQL中运行了它,得到了我想要的结果 这是我目前的代码: echo '<form align="center" method="post">'; echo '<select name="flightSelect">'; $fligh

我现在有一个带有表单的页面,我想使用一个变量填充一个基于SQL查询的表。我知道select下拉列表中的值被正确提取,我相信我已经正确实现了bindValue。但是,在提交表单时,表中没有显示任何内容。我知道SQL语句也是正确的,因为我直接在MySQL中运行了它,得到了我想要的结果

这是我目前的代码:

echo '<form align="center" method="post">';
echo '<select name="flightSelect">';
$flightstmt = $conn->query('select * from flight');
$flightstmt->execute();

while($row = $flightstmt->fetch(PDO::FETCH_ASSOC))
{
    echo "<option value='".$row['flightnum']."'>";
    echo $row['origination']."->".$row['destination'];
    echo '</option>';
}
echo '</select>';

echo '<table>';

if (isset($_POST['flightSelect']))
{
    $flightSelect = $_POST['flightSelect'];

    $flightPassengers = $conn->prepare('select * from passenger where passnum in (select passnum from manifest where flightnum=:flightSelect)');
    $flightPassengers->bindValue(':flightSelect', $flightSelect, PDO::PARAM_INT);
    $flightPassengers->execute();

    while($row = $flightPassengers->fetch(PDO::FETCH_ASSOC))
    {
        echo '<tr>';
        echo '<td>';
        echo $row['lastname']." ".$row['firstname'];
        echo '</td>';
        echo '</tr>';
    }
}

echo '</table>';

echo '<input type="submit" name="submit" value="Find passengers on this flight">';

echo '</form>';

提前感谢您的反馈

您需要验证乘客表中是否有您在提交时选择的航班数据

通过删除航班条件调试查询,并查看是否获得航班的结果


其余代码正确。

表单缺少操作属性。

在Chrome DevTools中打开网络面板,检查HTTP状态代码是否为500
如果是,请检查错误日志,您将至少找到堆栈跟踪。

我认为这通常是适用的,但在这种情况下,我只想在表单提交后保持在同一页面上。由于默认情况下,没有指定任何操作意味着只刷新页面,因此我认为这是我想要的选项。您应该尝试打印while循环中的$行,以查看查询是否有效。看起来很可能无法检索回数据,可能是由于PDO解析子查询或其他原因。