Ajax mysql搜索没有显示正确的结果


ajax mysql search doesn't display the proper results

我试图根据用户combobox搜索输入显示记录。这个ajax编码工作得很好。我对这个编码有一个小问题。例如,我从年中选择2014年。它将展示2014年发布的所有车型。然后我从国家中选择印度。现在应该展示2014年发布的所有印度制造的汽车。但它显示了2014年发布的所有汽车和所有印度制造的汽车。

因为这一行我的query ( b.officially_released_year = '".$pass_year."' OR b.country_of_origin = '".$pass_country."' OR b.bodystyle = '".$pass_bodystyle."')。我把OR改成AND了。但如果我从年份组合框输入中选择2014,它不会显示2014辆车。如何改变这个查询,如果我想从数据库正确的结果?

ajax代码

<script>
    $(function(){
        $('#search_year, #search_country, #search_bodystyle').on('change', function(){
            var year = $('#search_year').val();
            var country = $('#search_country').val();
            var bodystyle = $('#search_bodystyle').val();
            if(year || country || bodystyle){
                $('#loader').show();
                $.ajax({
                    type: "POST",
                    url: "<?=get_url($topic, CAR_FINDER_SEARCH)?>",  //or your php page
                    data: { year: year, country: country, bodystyle: bodystyle }
                    })
                    .done(function(response) {
                        $('#car_finder_results').html(response);
                        $('#loader').hide();
                });
            }
        });
    });
 </script>
php页面

<?php
        $pass_year = $_POST['year'];
        $pass_country = $_POST['country'];
        $pass_bodystyle = $_POST['bodystyle'];
        $sql_search = "SELECT b.model_name, b.maker_url, b.model_url FROM ".TBL_CAR_ADD_MODELS." a, ".TBL_CAR_SPEC_GENERAL." b WHERE a.model_id = b.model_id AND a.model_status = '1' AND ( b.officially_released_year = '".$pass_year."' OR b.country_of_origin = '".$pass_country."' OR b.bodystyle = '".$pass_bodystyle."')";
        $result = mysql_query($sql_search, $CN);
        if(mysql_num_rows($result) > 0)
        {
        while($get_search = mysql_fetch_array($result))
        {
    ?>
        <div class="all_list_imgs_anc" style="display:inline-block;">
            <a href="<?=asort_get_url(CAR_MAKE, $get_search['maker_url'], $get_search['model_url'])?>" class="img_anc_list">
                <span class="model_names"><?=$get_search['model_name'];?></span>
                <img src="<?=fa_model_image_path("medium", $get_search['maker_url'],$get_search['model_url'])?>" width="200" height="190" alt="<?=$get_search['model_name'];?>">
            </a>
        </div>
    <?php
        }
        }
        else
        {
            echo "<div style='margin-top: 25px; text-align: center; width: 900px; display: inline-block;'>No Car Models</div>";
        }
    ?>

试试这个:

<?php
    $pass_year = $_POST['year'];
    $pass_country = $_POST['country'];
    $pass_bodystyle = $_POST['bodystyle'];
    if($pass_country=='')
    {
        $sql_search = "SELECT b.model_name, b.maker_url, b.model_url FROM ".TBL_CAR_ADD_MODELS." a, ".TBL_CAR_SPEC_GENERAL." b WHERE a.model_id = b.model_id AND a.model_status = '1' AND  b.officially_released_year = '".$pass_year."' OR b.country_of_origin = '".$pass_country."' AND b.bodystyle = '".$pass_bodystyle."'";
    }
    else
     $sql_search = "SELECT b.model_name, b.maker_url, b.model_url FROM ".TBL_CAR_ADD_MODELS." a, ".TBL_CAR_SPEC_GENERAL." b WHERE a.model_id = b.model_id AND a.model_status = '1' AND  b.officially_released_year = '".$pass_year."' AND b.country_of_origin = '".$pass_country."' AND b.bodystyle = '".$pass_bodystyle."'";
    $result = mysql_query($sql_search, $CN);
    if(mysql_num_rows($result) > 0)
    {
    while($get_search = mysql_fetch_array($result))
    {
?>
    <div class="all_list_imgs_anc" style="display:inline-block;">
        <a href="<?=asort_get_url(CAR_MAKE, $get_search['maker_url'], $get_search['model_url'])?>" class="img_anc_list">
            <span class="model_names"><?=$get_search['model_name'];?></span>
            <img src="<?=fa_model_image_path("medium", $get_search['maker_url'],$get_search['model_url'])?>" width="200" height="190" alt="<?=$get_search['model_name'];?>">
        </a>
    </div>
<?php
    }
    }
    else
    {
        echo "<div style='margin-top: 25px; text-align: center; width: 900px; display: inline-block;'>No Car Models</div>";
    }
?>