問題が正しい方法で発生したかどうかはわかりませんが、試すことができます(間違っている場合はコメントしてください)。
thiseフラグメントを置き換えます:
$stmt = $dbh->prepare("SELECT COUNT(guid) FROM full_db2 WHERE {$firstpara} = :{$firstpara} AND {$secondpara} = :{$secondpara} AND {$thirdpara} = :{$thirdpara}");
$stmt->execute($data);
これで:
$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();
ajaxリクエストについては、こちらをお読みください:jQueryを使用してフォームを送信する
ajaxリクエストの行形式を次のように変更します:data: {firstpara: para1, secondpara: para2 ,thirdpara: para3}
to data: {age: para1, maritalstatus: para2 ,gender: para3},