php - 基于下拉菜单选择的 SQL 查询

标签 php html mysql sql phpmyadmin

我创建了一个像这样的下拉菜单:

<header>
    <h3 align="center"> Highway State </h3>
</header>
<section>
    <article>
        <hgroup>
        </hgroup>
        <p align="center">
        <form style="text-align:center" method="post" action="">

            <select name="dropdown1">
                <?php echo query1(); ?> 
            </select>

        <input type="submit" value="Submit" />
        </form> 
        </p>
    </article>

其中 query1() 位于

function query1()
{
    $myHTMLData = '';
    $c=connect();
    $myData=mysqli_query($c, "SELECT DISTINCT highway_state FROM highways_highway ORDER BY highway_state");
    while($record = mysqli_fetch_array($myData))
    {
        $myHTMLData .= '<option value="' . $record['highway_state'] . '">' . $record['highway_state'] . '</option>' ;
    }
    return $myHTMLData;
}

所以我正在做的是用状态填充下拉菜单。

我现在的问题是如何执行 sql 查询,例如 SELECT ID,exit_name FROM Highways_exit WHERE Highway_ID = (SELECT ID FROM Highways_highway WHERE Highway_state = *dropdown1*)

*dropdown1* 是我希望查询基于 dropdown1 中的选择的位置。 我该怎么做?

另外:当用户点击提交按钮时,如何在网页上显示此查询?

我尝试解决方案(用index.php编写)

    <header>
        <h3 align="center">Exit Name</h3>
    </header>
    <section>

        <table border='1' align="center">
            <tr>
            <th>Exit Name</th>
            <th>Exit ID</th>
            </tr>
<?php   
        $c=connect();
        $hstate = $_POST['dropdown1'];
        $hname = $_POST['dropdown2'];
        $hdir = $_POST['dropdown2pt5'];

        $result=mysqli_query($c, "SELECT exit_name, id FROM highways_exit WHERE highway_ID = (SELECT id FROM highways_highway WHERE highway_state = ('" . $hstate . "') AND highway_name = ('" . $hname . "') AND highway_dir = ('" . $hdir . "')) ");  
            while($row = mysqli_fetch_array($result))
            {
                $arrexit = $row['exit_name'];
                $arrid = $row['id'];
                echo "<tr><td>$arrexit</td><td>$arrid</td></tr>";
            }
  ?>
        </table>

    </section>
    <footer>
        <f1 align="center"></f1>
    </footer>

这对于使用菜单项是否正确?这个和菜单对象都在index.php上,有没有办法让它工作,这样它就会接受菜单项并在刷新/提交时生成这个表?

最佳答案

您可以使用$_POST['dropdown1']获取该值 然后你可以用它来查询数据库。

关于php - 基于下拉菜单选择的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16227180/

相关文章:

html - 防止内容隐藏在固定位置导航栏后面

javascript - 刷新页面时未加载 CSS

mysql - 更新表 A.type = B.type WHERE A.id = B.id

mysql - 为什么此 MySQL 查询成功执行?

PHP上传文件未保存到上传文件夹中

php - AJAX即时搜索修改

php - 'clean code' 的性能影响

php - Doctrine Annotations Exception - 奇怪的错误

javascript - 当用户单击栏图标时如何隐藏/显示导航栏?

mysql - 在本地手动设置 MySQL 以运行 Laravel artisan migrate (无 homestead) ERROR 2002 (HY000)