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 99763
공지 [질문] [삭제예정] 카테고리가 생겼습니다. [9] 유스티스 18/05/08 120611
공지 [질문] 성인 정보를 포함하는 글에 대한 공지입니다 [38] OrBef 16/05/03 168321
공지 [질문] 19금 질문은 되도록 자제해주십시오 [8] OrBef 15/10/28 202641
공지 [질문] 통합 공지사항 + 질문 게시판 이용에 관하여. [22] 항즐이 08/07/22 252461
175944 [질문] PC 견적 재문의 이동파7 24/04/25 7
175943 [질문] 비즈니스 이메일에 이모티콘 사용, 어떻게 생각하시나요 [20] 앗흥722 24/04/25 722
175942 [질문] 등단의 개념이 궁금합니다! [6] 파란토마토742 24/04/25 742
175941 [질문] 커피(원두) 맛에 대한 질문이 있습니다 [21] 시무룩765 24/04/25 765
175940 [질문] 여행 유튜버 추천 좀 받을 수 있을까요? [3] 라리825 24/04/25 825
175939 [질문] 카카오톡 톡캘린더로 광고 오는건 뭘까요? 소금물518 24/04/25 518
175938 [질문] 제주신화월드 근처에 아침 가능한 식당 찾습니다 [4] 회전목마1146 24/04/24 1146
175937 [질문] 이번 어도어 사태에 대한 궁금점 [25] 문인더스카이1883 24/04/24 1883
175936 [질문] 일본 지방에서 잘 터지는 통신사가 따로 있나요? [3] 숄츠1047 24/04/24 1047
175935 [질문] 아이폰 구매 질문드립니다. [2] LCK제발우승해826 24/04/24 826
175934 [질문] 수학 한문제 질문입니당 [5] 월터화이트1159 24/04/24 1159
175933 [질문] 플스하기 적절한 TV 사이즈는 어느 정도라고 생각하시나요? [19] 선플러765 24/04/24 765
175932 [질문] 아재분들 옷 어디서 사십니까 [18] Alcohol bear1034 24/04/24 1034
175931 [질문] 한국의 미래에 대해 극단적으로 조망한 책이 있을까요? [1] Keepmining825 24/04/24 825
175930 [질문] PC 견적 요청드립니다 [4] funk593 24/04/24 593
175929 [질문] 식물 비료 추천 부탁드리겠습니다 [8] 기다리다528 24/04/24 528
175928 [질문] 아이명의 통장에서 아이 학원비 이체시 증여세 신고가 필요할까요 [10] 콘칩콘치즈1122 24/04/24 1122
175926 [삭제예정] 폰 해킹 시도가 계속되는데 방법이 있을까요? [2] 삭제됨961 24/04/24 961
목록 이전 다음
댓글

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