Php 用于查询数据库的下拉菜单

Php 用于查询数据库的下拉菜单,php,forms,drop-down-menu,Php,Forms,Drop Down Menu,首先,如果这是一个愚蠢的问题,我道歉——我刚刚开始学习php/mysql技能。我正在制作一个包含3个下拉列表的下拉列表。我希望能够从表单触发查询。您可以选择零件类型、制造、模型点击提交,并显示结果表 我的表单中填充了3个数组,当您点击submit时,我可以将每个选定项的键回显到页面: echo '<form action="dbBrowse.php" method="post">'; $mak = array (0 => 'Make', 'Ford', 'Fr

首先,如果这是一个愚蠢的问题,我道歉——我刚刚开始学习php/mysql技能。我正在制作一个包含3个下拉列表的下拉列表。我希望能够从表单触发查询。您可以选择零件类型、制造、模型点击提交,并显示结果表

我的表单中填充了3个数组,当您点击submit时,我可以将每个选定项的键回显到页面:

    echo '<form action="dbBrowse.php" method="post">';

    $mak = array (0 => 'Make', 'Ford', 'Freightliner', 'Peterbilt', 'Sterling', 'Mack', 'International', 'Kenworth', 'Volvo');
    $mod = array (0 => 'Model', 'Argosy', 'Midliner');
    $p = array (0 => 'Part', 'Radiator', 'Charge Air Cooler', 'AC');                        



    echo '<select name="drop1">';
    foreach ($p as $key => $value) {
    echo "<option value=\"$key\">
    $value</option>\n";

    }


    echo '</select>';




    echo '<select name="drop2">';
    foreach ($mak as $key => $value) {
    echo "<option value=\"$key\">
    $value</option>\n";



    }

    echo '<select/>';



    echo '<select name="drop3">';
    foreach ($mod as $key => $value)  {
    echo "<option value=\"$key\">
    $value</option>\n";



    }

    echo '<select/>';
    echo '</form>';


            //echo keys of selection
    echo $_POST['drop1'];
    echo "<br />";
    echo $_POST['drop2'];
    echo "<br />";
    echo $_POST['drop3'];
            //these echo something like 1, 1, 3 etc. to my page

我想弄清楚如何做到这一点,这让我自己都快发疯了。最终,我想进一步扩展它,但只要能够用所选的值创建一个mysql语句,我现在就有机会了。我理解需要发生什么的概念,但我不确定如何实现它。我们将非常感谢您向正确方向提供的任何帮助或推动

如果我理解了您的问题,那么在提交表单时,您希望使用所选值查询数据库

使用和的示例:

这将从表部件中选择与这三个值匹配的所有行

使用或的示例:

这将从表部件中选择与这三个值中的任何一个匹配的所有行

您可以阅读更多关于此的信息:


首先,您必须删除。在SQL查询中,现在不需要使用它,当然也可以为变量指定正确的值

$partTypeVar = mysql_real_escape_string($_POST['$drop1']);
$makeTypeVar = mysql_real_escape_string($_POST['$drop2']);
$modelTypeVar = mysql_real_escape_string($_POST['$drop3']);

$dropSearch = mysql_query('SELECT * FROM parts WHERE part= "$partTypeVar" AND WHERE make = "$makeTypeVar" AND WHERE model = "$modelTypeVar"');
我假设这是变量的正确顺序

$partTypeVar = mysql_real_escape_string($_POST['$drop1']);
$makeTypeVar = mysql_real_escape_string($_POST['$drop2']);
$modelTypeVar = mysql_real_escape_string($_POST['$drop3']);

$dropSearch = mysql_query('SELECT * FROM parts WHERE part= "$partTypeVar" AND WHERE make = "$makeTypeVar" AND WHERE model = "$modelTypeVar"');

我希望这有帮助

可能重复:您在哪里指定变量的$drop1、$drop2、$drop3?stUrb很抱歉,我刚刚重新编辑它以删除$。它们只是dropboxesthanks的名字。感谢您的帮助。我做了一些调整,得到了我想要做的基本版本。伙计,你认为学习php/mysql最好的方法是什么?只是开始做一些小项目?这就是我开始做的事情,但我总是遇到我想做的事情和书中没有的问题或教程中没有讨论的问题。有什么建议吗?请阅读教程和最佳实践。一次又一次地问,一次又一次地问P当您对某些函数有问题时,请转到并阅读相关内容。
<select name="myFilter">
<option value="Chooseafilter" name="default">Choose a filter...</option>
<option value ="Lastname" name="opLastName">Last Name</option>
<option value="Firstname" name="opFirstName">First Name</option>
<select>
<li><!--TEXT SEARCH INPUT--><input type="text" name="search_filter" /></li> 
...
dbconnection();#assume that all connection data is here        
...
$filter = $_POST['myFilter']; #
...

switch($filter)
    {
        case "Lastname":
        $selectedoption = "profile_name";
        break;

        case "Firstname":
        $selectedoption="profile_first_name";
        break;

        case "Chooseafilter":
        $selectedoption = "";
        break;  
    }           

$result = pg_query($db_con, "SELECT * FROM profile WHERE ".$selectedoption." LIKE'%$_POST[search_filter]%'"); 
$row = pg_fetch_assoc($result);  
if (isset($_POST['submit']))
    {   
        while($row = pg_fetch_assoc($result))
        {
        echo"<ul>  
                <form name='update' action='' method='POST'>
                <li>Guest Last Name:</li>
                <li><input type='text' name='profile_name_result' value='$row[profile_name]' /></li>  
                <li>Guest First Name:</li>
                <li><input type='text' name='profile_first_name_result' value='$row[profile_first_name]' /></li>  
                <li><input type='submit' value='Update' name='update'></input></li>
    ...               
$partTypeVar = mysql_real_escape_string($_POST['$drop1']);
$makeTypeVar = mysql_real_escape_string($_POST['$drop2']);
$modelTypeVar = mysql_real_escape_string($_POST['$drop3']);

$dropSearch = mysql_query('SELECT * FROM parts WHERE part= "$partTypeVar" AND WHERE make = "$makeTypeVar" AND WHERE model = "$modelTypeVar"');
<select name="myFilter">
<option value="Chooseafilter" name="default">Choose a filter...</option>
<option value ="Lastname" name="opLastName">Last Name</option>
<option value="Firstname" name="opFirstName">First Name</option>
<select>
<li><!--TEXT SEARCH INPUT--><input type="text" name="search_filter" /></li> 
...
dbconnection();#assume that all connection data is here        
...
$filter = $_POST['myFilter']; #
...

switch($filter)
    {
        case "Lastname":
        $selectedoption = "profile_name";
        break;

        case "Firstname":
        $selectedoption="profile_first_name";
        break;

        case "Chooseafilter":
        $selectedoption = "";
        break;  
    }           

$result = pg_query($db_con, "SELECT * FROM profile WHERE ".$selectedoption." LIKE'%$_POST[search_filter]%'"); 
$row = pg_fetch_assoc($result);  
if (isset($_POST['submit']))
    {   
        while($row = pg_fetch_assoc($result))
        {
        echo"<ul>  
                <form name='update' action='' method='POST'>
                <li>Guest Last Name:</li>
                <li><input type='text' name='profile_name_result' value='$row[profile_name]' /></li>  
                <li>Guest First Name:</li>
                <li><input type='text' name='profile_first_name_result' value='$row[profile_first_name]' /></li>  
                <li><input type='submit' value='Update' name='update'></input></li>
    ...