PHP,SQL 질문드립니다!
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.4 |
안녕하십니까 불금에 질문드립니다;
●핵심
1.Form으로 주(week)를 input 받습니다.
2.db=mysql
3.<?php
SELECT * FROM table WHERE date=□□□□
?>
어떻게 해야 input type week 로 받은 그 주에 해당하는 date를 모두 출력할수 있을까요??..
즐거운 불금과 주말 보내십시오!
댓글 6
https://solbel.tistory.com/2223
위링크대로 날자를 일요일과 토요일날의 날자를 구한다음 그 사이에 있는 모든 숫자를 추가하여 (라이믹스라면) array에 해당 날자들을 넣어서 XML쿼리로 넘겨주시면 되겠네요..
월이 넘어가는 경우 달력에 따라 월 일도 보정해줄 수 있도록 메소드를 만들어 줘야겠지요.
date는 어떤 타입으로 저장되어 있나요? date 타입? 그냥 varchar 컬럼에 20220415 이런 문자열?
그럼 YYYY-MM-DD 형식으로 표시되겠군요. 다행히 윗분이 알려주신 소스의 포맷을 그대로 사용하셔도 되겠습니다.
WHERE date = □□□□ 이렇게 하나의 조건으로 처리하는 것이 아니라, WHERE date >= 첫날 AND date <= 마지막날 이렇게 앞뒤 조건을 거는 것으로 생각하시면 됩니다. 아니면 WHERE date BEWEEN 첫날 AND 마지막날 이런 문법을 사용할 수도 있고요.
사실 오늘 머리를 싸매다가 해결했습니다
Week로 받은 주를 day 단위로 바꾸려고만 생각했었는데
반대로sql Week(date,1)를 통해서 해당 date가 몇번째 주인지 체크후
Week value인 '2022-W15'를 substr로 뒤 15만 추출해서 조회 하니까 되네요!
레코드가 몇백 개 뿐이라면 상관없겠지만, 갯수가 많아지면 큰 차이가 나요.