PGR21.com
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다.
통합 규정을 준수해 주십시오. (2015.12.25.)
Date 2019/05/22 17:27:28
Name Albert Camus
Subject [질문] PHP, mySQL 관련 질문드립니다. (수정됨)
Tree 구조를 가진 데이터베이스를 만들고,

이를 웹에서 조회할 수 있도록 PHP, mySQL 을 이용해서 구현하려고 합니다.

두 언어 모두 초보적인 수준이라 찾아찾아 가면서 조금씩 해나가고 있는데 항목하나가 아무리 검색해도 찾기가 어려워서 질문드려봅니다.

현재 하고싶은건 상위 카테고리의 항목을 클릭하면, 거기에 속하는 하위 카테고리 목록이 나오고, 그 목록에서 또 한 항목을 클릭하면 다시 그 하위 항목이 조회되도록 하고 싶습니다.

ex) 전자제품 클릭 > 그 하위에 속하는 냉장고 휴대폰 청소기가 출력 (동시에 해당 글자들에는 다시 그 하위로 가는 링크가 걸려있음)> 냉장고 클릭 > 냉장고 하위 항목인 4문 / 3문 출력 > 최하위 항목까지 반복.

여기서 잘 안되는 부분이, DB를 조회한 결과에 하이퍼링크를 거는 부분이네요.

출력까지는 문제가 없는데, 출력 결과에 다시 링크를 걸려면 어떤 기능을 써야하는지 모르겠습니다.

PHP변수인 $row와 echo 함수,  HTML의 a herf tag 로 해보려했는데 잘 안되네요.

혹시 어떤 키워드로 검색하면 될지 알려주시면 감사하겠습니다.

하려는게 대략 다음 같은 거긴 합니다.

while($row = mysqli_fetch_array($result))
echo “ tr”;
echo “td”  a href = "??.php" [  $row[‘필드1’]   ]  /a /td

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
달고나
19/05/22 17:42
수정 아이콘
(수정됨) echo "<td><a href=".$링크값.">".$row['필드1']."</a></td>";
이게 아니라면 다른 고수분께서...
Albert Camus
19/05/22 17:47
수정 아이콘
이렇게 되는거였나요? row 쪽에 (html 출력부) 대괄호를 할 필요가 없는거였군요?
달고나
19/05/22 17:47
수정 아이콘
저방식보다
<? while($row = mysqli_fetch_array($result)){ ?>
<tr>
<td><a href="<?=$링크값?>"><?=$row['필드1']?></a></td>
</tr>
<? } ?>
이런식으로 더 많이 쓰입니다.
Albert Camus
19/05/22 20:10
수정 아이콘
내일 해볼게요. 감사합니다.
Albert Camus
19/05/23 14:04
수정 아이콘
(수정됨) 쉬운거부터 해보는 중인데, 이렇게 하니 Undefined variable: row 에러가 뜨네요.

link 대상엔 변수 대신 그냥 naver.com 넣었고 나머지는 구문 그대로거든요.

<? while($row = mysqli_fetch_array($result)){ ?>
<a href ="http://naver.com"><?=$row['name']?></a>

<? } ?>
이렇게요.

왜 define이 안되었다고 뜰까요? 흐음


(추가) 일단 php설정 때문인지 <? 코드는 안되서 <?php로 교체하였는데 아직 안되네요.

<?php while($row = mysqli_fetch_array($result)){ ?>
<a href ="http://naver.com"><?php =$row['name']?></a>

<?php } ?>

이상태입니다.


(추가2)
=$row 앞에 한칸을 띄우니 Undefined error가 뜨고, 혹시나해서 여백을 지우고 붙였더니 Error는 없는데 해당부분에 출력이 없습니다.


(추가3)
<?php while($row = mysqli_fetch_array($result)){ ?>
<a href ="http://naver.com"><?=$row['name']?></a>

<?php } ?>

위 코드로 해결했습니다.
row앞에 붙은 ?는 대체 왜 ?php로 쓰면 안되고 ? 만 써야할까요? 그러면서 다른 곳에서는 반드시 ?php로 써야하고... 이유를 아실까요?
네파리안
19/05/22 17:48
수정 아이콘
(수정됨) 저는 주로 스프링만 해서 php는 잘 모르는데 저라면 javascript나 jquery로 처리할것 같은데 마지막 링크가 들어갈 td에 클래스를 넣고 해당 클래스 클릭시 이벤트를 만들어 들어오는 값을 if-else로 구분하여 매핑되는 php로 window.location처리해서 리다이렉트 해줄것 같내요.
만약 php파일명이 필드1하고 일치한다면 어떻게 a태그로 해볼법도 할 수 있을지도 모르겠는데 아니라면 이 방법 뿐이 생각 안나내요.
구조가 어떻게 생긴건지 잘모르겠는데 최하위 카테고리를 클릭하면 해당 카테고리 정보로 간다면 seqno만 전달시켜 해당 seqno상세페이지를 호출하는 함수를 만들어서 처리할것 같고 아예 외부에 정보가 있다거나 하면 아예 최하위 카테고리의 DB에 매칭되는 링크 페이지를 같이 저장시켜 for문돌릴때 출력시키면 되지 않을까요?
Albert Camus
19/05/22 20:11
수정 아이콘
jquery나 javascript도 전혀 몰라서 대충 하는거 내에서 해보려고 했습니다.

저 둘도 오픈소스로 활용할 수 있는건가요?
네파리안
19/05/22 22:03
수정 아이콘
(수정됨) 일단 html, css, javascript는 웹개발시 기본적으로 사용하는 부분입니다.
jquery같은경우는 javascript를 조금 더 편하게 사용하기 위한 라이브러리 개념으로 보시면 되는데 이것도 요즘 유행이 좀 지나긴했는데 워낙 사용법이 간단해서 아마 javascript만 배우시면 사용하는 방법은 정말 쉽습니다.
웹개발하신다면 javascript는 기본이라 선택사항이 아니라 무조건 배우셔야해요.
https://youtu.be/wUHncG3VwPw 여기 들어가면 javascript 기본을 무료로 알려주는 인강있으니 참고하시기 바랍니다.
https://www.w3schools.com/ 워낙 유명해서 아실것 같은데 여기서 기본적인 사항들 찾아보시던가 공부해도 됩니다.
그리고 php도 제가 알기로는 라라벨이라는 프레임워크를 사용한다고 들었는데 언어배우실때 프레임워크까지 하시는게 좋지 않을까 싶내요.
19/05/22 20:22
수정 아이콘
보통 달고나 님이 말씀해주신 방법으로 많이 씁니다. 아니 많이..가 아니고 그냥 다 저렇게 쓴다고 보시면 되요.
음 근데 보통 while 보다는 foreach를 많이 쓰긴 합니다.

쿼리해 온 정보를 $data 라고 칠때

<table id="블라블라">
<? foreach ($data as $key => $value) { ?>
<tr>
<td><a href="<?=$링크값?>"><?=$value ?></a></td>
</tr>
<? } ?>
</table>

뭐 이런식으로요.
db에 key를 링크값으로 쌓는다고 하면 저 링크값을 $key 로 대체해도 되겠죠.
Albert Camus
19/05/22 20:30
수정 아이콘
답변 감사드립니다.
$data as key => $value 이 구문의 의미는 무엇인가요?
그리고 for each 는 개별 row애 대해서 모두 적용한다는 건가요?
19/05/22 20:37
수정 아이콘
foreach 구문을 공부해 보시면 금방 아실겁니다.
보통 쿼리한 array data 불러온걸 key와 value를 분류해서 루프 돌린다고 보시면 됩니다.
Albert Camus
19/05/22 20:40
수정 아이콘
넵 감사합니다!
맥핑키
19/05/22 20:32
수정 아이콘
예전 msdn 같은 스타일을 생각하신 것 같은데
아약스로 하면 됩니다. div로 순차적 padding 이나 margin 주면서요.
Albert Camus
19/05/22 20:36
수정 아이콘
잘 몰라서요 크크. 말씀해주신 키워드로도 찾아볼게요.
맥핑키
19/05/22 20:44
수정 아이콘
제가 좀 예전 표준이라 애매하긴 한데 테이블로 구조를 짜면 엄청 골치아파져요. 그리고 이게 카테고리 하나 클릭할때마다 페이지를 새로고침 하는건 데이터 낭비입니다.
카테고리와 컨텐츠를 프레임으로 나누고요, 카테고리는 확장되면 div로 불러와서 페이지에 추가하면 되고요 (어차피 한단어 혹은 두 단어일 테니)
예전엔 ajax라고 불렀는데 j쿼리에 보면 아마 함수가 있을겁니다. 서버에 쿼리 날려서 단어만 불러오면 나머지는 자바 스크립트나 제이쿼리로 createElement 해서 div 만들고 추가하면 되요. 하위 카테고리가 있는 카테고리나 최하위 카테고리(페이지가 출력되어야 하는) 는 onclick 이벤트로 컨텐츠 프레임에 페이지를 불러오면 되고요.
19/05/22 20:48
수정 아이콘
뭐 말씀하신 방법이 요즘 추세에는 맞는데 js나 jquery를 전혀 못하신다고 하셨으니까요. js도 모르시는데 ajax 요구하는건 좀 과하죠.
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
공지 댓글잠금 [질문] 통합 규정(2019.11.8. 개정) jjohny=쿠마 19/11/08 111006
공지 [질문] [삭제예정] 카테고리가 생겼습니다. [10] 유스티스 18/05/08 134009
공지 [질문] 성인 정보를 포함하는 글에 대한 공지입니다 [38] OrBef 16/05/03 183733
공지 [질문] 19금 질문은 되도록 자제해주십시오 [8] OrBef 15/10/28 216838
공지 [질문] 통합 공지사항 + 질문 게시판 이용에 관하여. [22] 항즐이 08/07/22 268733
181126 [질문] PPT 특화되어있는 AI? 종류 추천 부탁드려요! 요아정110 25/07/14 110
181125 [질문] 헬로우 애너하임! [1] 단지우유773 25/07/13 773
181124 [질문] 부모님이 쓰시기 좋은 튼튼한 유선 이어폰 추천 해주세요. 44년신혼2년829 25/07/13 829
181123 [질문] 8월에 일본 삿포로 여행을 3박 4일로 가는데요 [3] 아이폰15pro1158 25/07/13 1158
181122 [질문] 갤25 플러스, 단통법 폐지 전에 살까요, 폐지 후에 살까요? [1] 광개토태왕1290 25/07/13 1290
181121 [질문] 화면을 꺼도 작동하는 카메라앱 추천 부탁드립니다. 콩돌이1109 25/07/13 1109
181120 [질문] 핸드폰 교체 / 고가요금제 3개월 유지 조건 [6] Azure_754 25/07/13 754
181119 [질문] 폴드7, 사전예약이 좋을까요 단통법 철회 이후에 구매가 나을까요? [3] 시린비884 25/07/13 884
181118 [질문] 보르조이의 아오오니영상을 찾고 있습니다 [1] 카오루872 25/07/13 872
181117 [질문] LCK나 혹은 국제대회 도핑테스트는 어떻게 하나요? [1] 클레멘티아1047 25/07/13 1047
181116 [질문] XBOX PC 게임패스 다운로드 속도 문의(0x800704C6) sangbung2801 25/07/13 801
181115 [질문] 걸그룹 탑티어 보컬은 누가 있을까요? - 2000년생 이후 조건 [11] MoonWatch1660 25/07/13 1660
181114 [질문] 매장에서 사용할 핸드폰을 구입하려고 합니다. 고요1655 25/07/13 1655
181113 [질문] 5살 아이랑 겨울 여행 나트랑 vs 푸꾸옥 어디를 더 추천하시나요? [8] 기억의습작1625 25/07/12 1625
181112 [질문] 탈원전과 함께 에어컨 사용 금지법이 시행된다면? [11] 수지짜응2145 25/07/12 2145
181111 [질문] 요리 빡고수분 계신가요(김치질문) [6] 불대가리2850 25/07/12 2850
181110 [질문] 운전자 보험은 새로 드는 게 좋나요? [9] 빼사스3894 25/07/12 3894
181109 [질문] [POE1] 아틀라스 노드 관련 질문입니다! 일월마가2710 25/07/11 2710
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로