sql문 질문 드립니다.
본문
$where = " where ";
$sql_search = "";
if ($stx != "") {
if ($sfl != "") {
$sql_search .= " $where $sfl like '%$stx%' ";
$where = " and ";
}
if ($save_stx != $stx);
//$page = 1;
}
//검색조건 2 쿼리에 적용
if ($stx2 != "") {
if ($sfl2 != "") {
$sql_search .= " $where $sfl2 like '%$stx2%' ";
$where = " and ";
}
if ($save_stx2 != $stx2);
//$page = 1;
}
//검색조건3 날짜 bar_orderdate
if ($fr_date != "" && $to_date != "") {
$sql_search .= " $where DATE($nal01) BETWEEN '$fr_date' AND '$to_date' ";
$where = " and ";
// $page = 1;
}
//검색조건4 입고1 출고1 존재/미존재
if ($sfl3 != "") { //출고
if($sfl3 == "exist"){
$sql_search .= " $where $sfl5 != '0000-00-00 00:00:00'";
$where = " and ";
} else if($sfl3 == "not_exist"){
$sql_search .= " $where $sfl5 = '0000-00-00 00:00:00'";
$where = " and ";
}
}
if ($sfl4 != "") { //입고
if($sfl4 == "exist"){
$sql_search .= " $where $sfl6 != '0000-00-00 00:00:00'";
$where = " and ";
} else if($sfl4 == "not_exist"){
$sql_search .= " $where $sfl6 = '0000-00-00 00:00:00'";
$where = " and ";
}
}
// 카운터1
$sql_common1 = " from g5_shop_barcode ";
if ($sql_search != "") {
$sql_common1 .= $sql_search .= " and bar_itemcode like '26%' ";
} else {
$sql_common1 .= " where bar_itemcode like '26%' ";
}
$sql = " select count(*) as cnt " . $sql_common1;
$row = sql_fetch($sql);
$count1 = $row['cnt'];
이렇게 카운터를 출력하고 있는데요.
1개의 카운터는 되는데
// 카운터1
$sql_common1 = " from g5_shop_barcode ";
if ($sql_search != "") {
$sql_common1 .= $sql_search .= " and bar_itemcode like '26%' ";
} else {
$sql_common1 .= " where bar_itemcode like '26%' ";
}
$sql = " select count(*) as cnt " . $sql_common1;
$row = sql_fetch($sql);
$count1 = $row['cnt'];
// 카운터2
$sql_common2 = " from g5_shop_barcode ";
if ($sql_search != "") {
$sql_common2 .= $sql_search .= " and bar_itemcode like '28%' ";
} else {
$sql_common2 .= " where bar_itemcode like '28%' ";
}
$sql = " select count(*) as cnt " . $sql_common2;
$row = sql_fetch($sql);
$count2 = $row['cnt'];
이런식으로 2개 부터는 안나오네요.. 함수도 동일하고 카운트 뽑을 필드명만 다른 뿐인데
이상하게 두번째 카운터 부터는 출력이 안되네요..
검색을 안하고 그냥 목록에서는 카운터가 2가지가 정상출력 되는데
검색을 하게 되면 두번재 카운터부터 나오질 않고 있네요 ..
답변 1
$sql = " select count(*) as cnt " . $sql_common2;
여기 하단에
echo $sql; 로 했어 정상적으로 쿼리문을 요청하는지 확인해보세요
제가 볼땐 검색일경우 where 중복으로 들어가지 않을까 싶네요?
이유는?
$where = " where ";
$sql_search = "";
if ($stx != "") {
if ($sfl != "") {
$sql_search .= " $where $sfl like '%$stx%' ";
$where = " and ";
}
if ($save_stx != $stx);
//$page = 1;
}
//검색조건 2 쿼리에 적용
if ($stx2 != "") {
if ($sfl2 != "") {
$sql_search .= " $where $sfl2 like '%$stx2%' ";
$where = " and ";
}
if ($save_stx2 != $stx2);
//$page = 1;
}
검색 조건 1에서 sql_search 함수에 $where를 넣었는대 조건 2에서도 sql_search 부분에 $where 들어가는거 같은대요?