19일차

2024. 8. 16. 18:48FCB2O4

오늘은 메인페이지 위주로 진행

 

먼저 구장 목록 중에서 인기도가 높은 순서대로 3개를 뽑아 내림차순으로 정렬

<select id="getStadiumList" resultType="b2o4.dto.MainPage">
    SELECT og.stadiumName, og.stadiumImage, rv.likeCount
    FROM stadium og
    JOIN stadiumreview rv ON og.stadiumNo = rv.stadiumNo
    ORDER BY totalLike DESC 
    LIMIT 3
</select>

 

해당 코드로 진행하다가 DB를 보니 평가 테이블이 다음과 같이 작성되어 있었다.

 

이에 대대적으로 다시 수정.

스타디움 별로 좋아요와 싫어요를 각각 합산하고 좋아요 총합에서 싫어요 총합을 뺀 값을 totalLike로 지정하였다.

 

<select id="getStadiumList" resultType="b2o4.dto.MainPage">
    SELECT og.stadiumName, og.stadiumImage, (SUM(rv.likeCount) - SUM(rv.dislikeCount)) as totalLike
    FROM stadium og
    JOIN stadiumreview rv ON og.stadiumNo = rv.stadiumNo
    GROUP BY og.stadiumNo, og.stadiumName, og.stadiumImage
    ORDER BY totalLike DESC 
    LIMIT 3
</select>

 

그리고 totalLike가 가장 높은 3개를 뽑아내어 페이지에 표시.

 

왼쪽 부터 인기도가 높은 순

 

그리고 갤러리 게시판과 용품 장터에서 랜덤으로 3개를 가져와 페이지에 보이도록 하였다.

<!-- 갤러리 게시판에서 게시물 3개 랜덤으로 가져오기 -->
<select id="getGalleryList" resultType="b2o4.dto.MainPage">
    SELECT * FROM galleryboard ORDER BY RAND() LIMIT 3
</select>

<!-- 용품 장터에서 용품 3개 랜덤으로 가져오기 -->
<select id="getGoodsList" resultType="b2o4.dto.MainPage">
    SELECT * FROM goodsshop ORDER BY RAND() LIMIT 3
</select>

 

여기서 RAND()는 MySql에서만 쓸 수 있는 명령어로, 랜덤으로 가져올 수 있게 해준다.

 

새로 고침 전

 

 

새로 고침 후

 

일단 메인페이지 틀을 잡는 데 까지는 진행하였다. 다음에 본격적으로 CSS를 진행할 예정

 

또한 날씨 API를 가져와 오른편에 날씨를 띄울 예정

'FCB2O4' 카테고리의 다른 글

21일차  (0) 2024.08.21
20일차  (0) 2024.08.19
18일차  (0) 2024.08.14
17일차  (0) 2024.08.13
16일차  (0) 2024.08.12