我希望在表单中选择性别时为我的查询添加一个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
答案 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);
}