如何从数据库中调用单个查询中的2个相关表

时间:2015-12-31 04:45:42

标签: php html mysql database

我是数据库编程的新手。我想知道如何在一个表单上调用两个表。

例如,我有2个名为" Car Brand"和"汽车模型"。每当用户从组合框中选择汽车品牌(例如BMW)时,另一个组合框应该列出所有型号的宝马汽车从汽车模型"表

我应该使用ajax,如果是这样,我该怎么办?我在网上搜索这个解决方案真的很难,因为我对这方面不是很熟悉。

希望通过这个问题学习如何。 感谢

顺便说一下,我正在使用PHP。

2 个答案:

答案 0 :(得分:2)

我使用 jQuery AJAX 驱动的HTML数据从 MySql 表中使用两个下拉列表来解释这一点。

例如,我们有两个下拉列表" Car Brand "和" 汽车模型"。关于改变汽车品牌" dorpdown值,相应的" 汽车模型"下拉值将使用 jQuery AJAX 动态加载。

1)HTML :此代码包含" 汽车品牌"," 汽车模型"下拉列表。

<div class="frmDronpDown">
    <div class="row">
        <label>Car Brand:</label><br/>
        <select name="brand" id="brand-list" class="demoInputBox" onChange="getState(this.value);">
        <option value="">Select Car Brand</option>
        <?php
        foreach($results as $brand) {
            ?><option value="<?php echo $brand["id"]; ?>"><?php echo $brand["name"]; ?></option><?php
        }
        ?>
        </select>
    </div>
    <div class="row">
        <label>Car Model:</label><br/>
        <select name="model" id="model-list" class="demoInputBox">
        <option value="">Select Car Model</option>
        </select>
    </div>
</div>

2)JQuery AJAX : 此脚本包含将在更改 Car Brand 下拉列值时调用的函数。它会将AJAX请求发送到 PHP 页面以获取相应的 Car Model 下拉选项。

<script>
    function getState(val) {
        $.ajax({
        type: "POST",
        url: "get_model.php",
        data:'brand_id='+val,
        success: function(data){
            $("#model-list").html(data);
        }
        });
    }
</script>

3)PHP :这个PHP代码连接数据库,根据jQuery AJAX调用传递的品牌ID检索模型表值。

<?php
    require_once("dbcontroller.php");//Your connection...
    $db_handle = new DBController();
    if(!empty($_POST["brand_id"])) {
        $query ="SELECT * FROM model WHERE brandID = '" . $_POST["brand_id"] . "'";
        $results = $db_handle->runQuery($query);

        ?><option value="">Select Car Model</option><?php
        foreach($results as $model) {
            ?><option value="<?php echo $model["id"]; ?>"><?php echo $model["name"]; ?></option><?php
        }
    }
?>

完成上述三个步骤后,您可以看到两个下拉呼叫&#34; 汽车品牌&#34;和&#34; 汽车模型&#34;。通过从&#34; 汽车品牌&#34;中选择可用的汽车品牌来查看结果下拉列表。

希望这对你有所帮助!

答案 1 :(得分:0)

您可以使用ajax功能。 使用jquery onchange事件从第一个下拉列表获取Brand并发送GET请求以使用ajax从数据库中获取所有相关模型。当您从数据库中获取模型列表时,只需在下拉列表中填充它。

您可以查看:First drop down menu to auto change the options of a second dropdown