Tôi không chắc liệu tôi đã giải quyết vấn đề của bạn theo cách chính xác hay chưa nhưng bạn có thể thử (hoặc nhận xét nếu tôi hiểu sai).
Thay thế đoạn này:
$stmt = $dbh->prepare("SELECT COUNT(guid) FROM full_db2 WHERE {$firstpara} = :{$firstpara} AND {$secondpara} = :{$secondpara} AND {$thirdpara} = :{$thirdpara}");
$stmt->execute($data);
với cái này:
$validKeys = array('gender','maritalstatus', 'age');
$sql = 'SELECT COUNT(guid) FROM full_db2';
$any_condition = false;
foreach($_GET as $key=>$val) {
if (!empty($val) && in_array($key,$validKeys)) {
if ($any_condition) {
$sql .= ' AND '.$key.' = :'.$key;
} else {
$sql .= ' WHERE '.$key.' = :'.$key;
$any_condition = true;
}
}
}
$stmt = $dbh->prepare($sql);
foreach($_GET as $key=>$val) {
if (!empty($val) && in_array($key,$validKeys)) {
$stmt ->bindValue(':'.$key, $val, PDO::PARAM_STR);
}
}
$stmt->execute();
cho yêu cầu ajax của bạn, chỉ cần đọc tại đây: Gửi biểu mẫu bằng jQuery
trong yêu cầu ajax của bạn thay đổi định dạng dòng từ:data: {firstpara: para1, secondpara: para2 ,thirdpara: para3}
đến dữ liệu data: {age: para1, maritalstatus: para2 ,gender: para3},