Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.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
Php 基于下拉菜单选择的SQL查询_Php_Html_Mysql_Sql_Phpmyadmin - Fatal编程技术网

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

Php 基于下拉菜单选择的SQL查询,php,html,mysql,sql,phpmyadmin,Php,Html,Mysql,Sql,Phpmyadmin,我创建了如下下拉列表: <header> <h3 align="center"> Highway State </h3> </header> <section> <article> <hgroup> </hgroup> <p align="center"> <form style="text-align:

我创建了如下下拉列表:

<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查询 选择ID,从高速路退出\u名称从高速路退出\u ID=从高速路选择ID从高速路退出\u状态=*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上,有没有一种方法可以让它工作,从而在刷新/提交时接收菜单项并生成此表?

您可以使用$\u POST['dropdown1']获得值
然后您可以使用它来查询数据库。

那么您想做以下工作吗$myVal=$_POST['dropdown1'];newquery$myVal;然后函数newquery$myval{$myHTMLData=;$c=connect;$myData=mysqli\u query$c,选择ID,退出公路的名称\u退出公路的位置\u ID=SELECT ID FROM highways\u highway\u state=$myval;}您可以执行类似于$sql=SELECT ID的操作,exit_name FROM highways_exit WHERE highway_ID=选择ID FROM highways_highway WHERE highway_state='$_POST['dropdown1']+';但是请注意SQL注入。您需要在将输入注入查询之前对其进行清理。如果“dropdown1”只是一个由数据库本身填充的下拉菜单,是否有原因会导致注入?恶意用户可以像使用firebug和post一样轻松地更改发布的值。查看和