Extra Form
PHP PHP 7.4

방금전 php 잘못 넣어서 로딩걸리는 질문자입니다 ㅜ

 

report 테이블

_________________________________

place  /  item  /  success / date

지점명 / 품목   /  성공유무  / 날짜

_________________________________

 

위와 같은 테이블에서 지점별로 품목별 전체건수, 성공건수를 출력해야하는데 지금은 일일히

 

전체

Sql = select count(*) as cnt FROM report WHERE place ='지점1' AND item ='품목1' AND date = CURDATE();

 

성공건

Sql = select count(*) as cnt FROM report WHERE place ='지점1' AND item ='품목1' AND success='O' AND date = CURDATE();

 

 

이런식으로 30개지점 각 7개품목씩 성공건까지 14개 SQL을 출력하다보니 로딩이 심합니다 ㅜ

 

어떻게 요약하는게 좋을까요..

  • profile

    SELECT place, item, success, count(*) AS cnt FROM report WHERE place IN ('지점1', '지점2', '지점3') AND item IN ('품목1', '품목2', '품목3') AND date = CURDATE() GROUP BY place, item, success;

     

    대충 이런 방식으로 하면 지점별, 품목별, 성공여부에 따른 카운트 수가 쫘르륵 나올 것입니다. 이걸 PHP에서 받아서 루프 돌리면서 각각의 지점, 품목, 성공여부에 해당하는 변수에 집어넣어 보세요. 성공 건수와 실패 건수를 합쳐서 전체 건수를 구하는 계산 정도는 PHP에서 해주는 센스!

     

    만약 모든 지점의 모든 품목을 체크하는 프로그램이라면 place와 item을 나열하는 조건을 넣을 필요도 없습니다. WHERE절에서 검색 조건을 제한하지 않으면 그냥 다 체크하는 것이 기본값이니까요.

  • profile profile
    세상에.. 너무감사합니다 ㅜㅜ
    집에가서 적용해봐야겠네요
  • profile profile
    말씀해주신대로 반영했더니 로딩이 10초에서 3초로 줄었습니다 ㅜㅜ 정말감사합니다