添加到MySQL查询

时间:2014-03-31 17:41:33

标签: mysql sql

我希望在表单中选择性别时为我的查询添加一个WHERE。

我使用bindParam使用一个dropdownmenu来获取Year,但我希望第二个bindParam插入' AND Gender ='查询和' $ _ GET [' dropdowngender']填写该内容。

我想使用if语句查看是否正在使用dropdownmenu,以及是否选择了正在将信息添加到查询中的性别。

<?php

@include ('conn.php');

$query = $db->prepare("SELECT Name, MAX(Count) AS MaxCount, ZIPcode, Year FROM Name_Data WHERE Year = :year AND Name_Data.Count = ( SELECT MAX( Count ) FROM Name_Data AS f WHERE f.id = Name_Data.id ) GROUP BY ZIPcode");

$query->bindParam(':jaar', $_GET['dropdownyear'], PDO::PARAM_STR, 30);

$query->execute();

$result = $query->fetchAll (PDO::FETCH_ASSOC); 

$jsonResult = json_encode($result);

echo $jsonResult;

?>

这是我的索引页

<form method="post" action="#" id="form">
    <select name="dropdownyear" id="menuyear">
        <option selected>Choose a year</option>
    </select>
    <select name="dropdowngender" id="menugender">
            <option value="M">Male</option>
    <option value="F">Female</option>
    </select>
</form>

我的jquery脚本

$( "#form" )
.change(function(){
$(".marker").empty();
var SelectYear= $("#menuyear option:selected").text();

    $.getJSON( "sql.php",  { dropdownjaar: SelectYear }, function(jsonData) {    
        console.log( jsonData );

        $.each( jsonData, function(key,row) {
            var newDiv=$('<div>');
            var Content = row ['Name'] + ' ';
            newDiv.text(Content);
    }); // each

    }); //get json
}); // change function

1 个答案:

答案 0 :(得分:0)

这可能会对您有所帮助:

$query = "SELECT Name, MAX(Count) AS MaxCount, ZIPcode, Year 
          FROM Name_Data 
          WHERE Year = :year ";
if( isset( $_GET['dropdowngender'] ) {
    $query = $query . " AND gender = :gender ";
}

$query = $query . " AND Name_Data.Count = 
         ( SELECT MAX( Count ) FROM Name_Data AS f 
           WHERE f.id = Name_Data.id 
         ) GROUP BY ZIPcode";

$query->bindParam(':year', $_GET['dropdownyear'], PDO::PARAM_STR);
if( isset( $_GET['dropdowngender'] ) {
    $query->bindParam(':gender', $_GET['dropdowngender'], PDO::PARAM_STR);
}