MySQL 데이터베이스의 결과를 필터링하도록 설정된 콤보 상자가 3 개 있습니다. 로드 할 때 모든 결과가 올바른 순서로 표시되지만 3 개의 콤보 상자 중 하나를 선택하거나 3 개의 콤보 상자 중 2 개를 선택하면 결과 (행)가 표시되지 않습니다. 3 개의 콤보 상자를 모두 선택하면 결과가 표시됩니다.Ajax & PHP : MySQL 쿼리가 모든 행을 가져 오지 않습니다.
누군가 내 쿼리 코드에 어떤 문제가 있는지 파악할 수 있기를 바랍니다. 나는 모든 것을 시도해 본 결과 아무 것도 찾을 수없는 것 같습니다. 나는 내가 최선의 방법으로 그렇게하고 있는지 궁금해. 나는 PHP에 상당히 익숙하기 때문에 사용할 수있는 모든 다른 방법을 모른다.
PHP의 :
//Define Refine Data Values
$imgFamily = $_GET['imgFamily'];
$imgClass = $_GET['imgClass'];
$imgGender = $_GET['imgGender'];
//Define Refine Values as True of False
$imgFamilyTrue = (($imgFamily != 1) || ($imgFamily != null));
$imgFamilyFalse = (($imgFamily == 1) || ($imgFamily == null));
$imgClassTrue = (($imgClass != 1) || ($imgClass != null));
$imgClassFalse = (($imgClass == 1) || ($imgClass == null));
$imgGenderTrue = (($imgGender != 1) || ($imgGender != null));
$imgGenderFalse = (($imgGender == 1) || ($imgGender == null));
include"db.php";
//Database queries based on refine selections
if($imgFamilyFalse && $imgClassFalse && $imgGenderFalse) {
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` ".
"ORDER BY `imgDate` DESC";
} else if($imgFamilyTrue && $imgClassTrue && $imgGenderTrue) {
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` WHERE imgFamily='$imgFamily' AND imgClass='$imgClass' AND imgGender='$imgGender' ".
"ORDER BY `imgDate` DESC";
} else if($imgFamilyTrue && $imgClassFalse && $imgGenderFalse) {
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` WHERE imgFamily='$imgFamily' ".
"ORDER BY `imgDate` DESC";
} else if($imgFamilyFalse && $imgClassTrue && $imgGenderFalse) {
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` WHERE imgClass='$imgClass' ".
"ORDER BY `imgDate` DESC";
} else if($imgFamilyFalse && $imgClassFalse && $imgGenderTrue) {
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` WHERE imgGender='$imgGender' ".
"ORDER BY `imgDate` DESC";
} else if($imgFamilyFalse && $imgClassTrue && $imgGenderTrue) {
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` WHERE imgClass='$imgClass' AND imgGender='$imgGender' ".
"ORDER BY `imgDate` DESC";
} else if($imgFamilyTrue && $imgClassFalse && $imgGenderTrue) {
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` WHERE imgFamily='$imgFamily' AND imgGender='$imgGender' ".
"ORDER BY `imgDate` DESC";
} else if($imgFamilyTrue && $imgClassTrue && $imgGenderFalse) {
$query_pag_data = "SELECT `imgURL`,`imgTitle` FROM `images` WHERE imgFamily='$imgFamily' AND imgClass='$imgClass' ".
"ORDER BY `imgDate` DESC";
}
나는 오류가 자바 스크립트 측에서 호출되지되고, 나는 두 개의 콤보 상자를했을 때 모든 것이 작동되었을 때 문제가 PHP와 함께 꽤 확신, 문제가 끝날 경우를 대비하여 jQuery Ajax 쿼리를 게시 할 것이다.
아약스 : 당신은 A
및 B
및 C
다음 결과를 가져 오는 경우
말을하는 AND
연산자를 사용하고 있기 때문에
function loadData(imgFamily, imgClass, imgGender){
$.ajax
({
type: "GET",
url: "filter_test.php",
data: {imgFamily:imgFamily, imgClass:imgClass, imgGender:imgGender},
success: function(msg) {
$("#gallery_container").html(msg);
},
error: function(jqXHR, textStatus, errorThrown) {
},
complete: function() {
}
});
}
위의 조건 '엉망'나를 믿어 @Jakub – Jakub
... 악몽을 준, 나뿐만 아니라 악몽했다. 그러나 아래의 개인들의 도움 덕분에, 나는이 같은 악몽을 결코 다시 일으키지 않을 것입니다! 나 자신을 위해 PHP를 알아 내려고 시도한 결과였습니다. – stefmikhail