2026, 새로운 도약을 시작합니다.

php 페이지에 sql 테이블 삽입 수정. 채택완료

현재 php 페이지 내에 sql을 이용하여, 게시물에 입력된 DB를 추출해 스케쥴표가 표시되고 있습니다. 카테고리는 총 3개입니다.


Copy




    

        CLASS MALL 

        각 강좌에 대한 소개와 설명 입니다.

        

        

        

        컨퍼런스 3일 동안 시간대와 순서별로 나열하여 소개하고 있습니다.


        클릭하시면 해당 강좌에 대한 보다 자세한 정보를 얻으실 수 있습니다.


        원하시는 강좌를 선택하셔서 수강신청 하시면 장바구니에 담기게 되며 마이페이지에서 전체 선택하신 강좌를 한 번에 확인하실 수 있습니다.
전체 최대 수강 가능하신 범위가 설정되며 범위를 넘지 않게 수강 신청하셔야 합니다.


        한 사람이 3일 동안 최대 수강 가능한 세션은 9개 클라스이며 최소 수강은 2개 클라스입니다.       

        

        

문제는 기존 코드가 테이블 양식이 고정되어 있는데 3가지 테이블을 전부 다르게 출력하고 싶은데... SQL은 초보라 어찌어찌 해서 특정 카테고리만 출력되게 까지는 성공을 했습니다만

(카테고리 번호 10, 20, 30)

Copy

나머지 카테고리도 각각 소스를 복사해서 붙여넣으니 오류가 나더라고요.. 사이트가 아예 먹통...

어떻게 해야 좋을까요....

답변 2개

채택된 답변
+20 포인트

sql1,sql2,sql3 을 실행할때 fetch_array내에서 계속실행되면 DB버전에 따라 속도가 아주느리거나 오류를 뱉어 낼겁니다.(서브쿼리의 서브쿼리)

mariadb 계열이라면 더더욱 그럴거 같아요

저같으면 각각 sql 을 각각의 변수에 따로 담아서 처리할것 같아요

$sql1 실행 결과는 $list1에 담고

$sql2 실행 결과는 $list2에 담고

$sql3 실행 결과는 $list3에 담고 처리를 해보세요

다차원 배열형태로 가는것이 좋은데

관련 내용은 구글링하시면 될것 같아요

$sql2 에 보면 $row1값을 토대로 처리하고 

$sql3 에 보면 $row2값을 토대로 처리하니

DB입장에서는 각 sql마다 1개의 row를 가지는것이 아니라고 판단하여

sql1결과 레코드 * sql2결과 레코드 * sql3결과 레코드의 DB 연산을 하게 되는것입니다.

많이 비효율적일것 같아요

각 sql은 한번씩만 처리하고 배열 변수에 담아두고 처리하게끔하는것이 DB 부하를 줄이고 쾌적한 속도를 위한 첫걸음이 될것 같아요

이걸 잘배워 놓으시면 훗날 검색엔진 다룰일이 있다면 도움이 되실거니 충분히 고민을 해서 이문제를 해결하시는데 도움이 되었으면 좋겠습니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

문제는 기존 코드가 테이블 양식이 고정되어 있는데 3가지 테이블을 전부 다르게 출력하고 싶은데... 

=≠=

필요한 컬럼을 모두 추가 하시고

구분용(type)으로 하나 더 추가해서

type 별로 필요한 컬럼을 가져다 쓰시면 됩니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고