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 99526
공지 [질문] [삭제예정] 카테고리가 생겼습니다. [9] 유스티스 18/05/08 120387
공지 [질문] 성인 정보를 포함하는 글에 대한 공지입니다 [38] OrBef 16/05/03 168024
공지 [질문] 19금 질문은 되도록 자제해주십시오 [8] OrBef 15/10/28 202367
공지 [질문] 통합 공지사항 + 질문 게시판 이용에 관하여. [22] 항즐이 08/07/22 252153
175799 [질문] 드디어...! PC견적 질문 드립니다. [4] Winter_SkaDi273 24/04/16 273
175798 [질문] 컴퓨터 본체 중고가격 책정 좀 부탁드려요 [6] 정유미337 24/04/16 337
175797 [질문] 경주 여행 교통편에 대해서 문의 드립니다. [11] 황신강림501 24/04/16 501
175796 [질문] 남자옷 사기 적당한 인터넷쇼핑몰 어떤게 있을까요..? [15] Restar896 24/04/16 896
175795 [질문] 인생 최초로 신차가 출고 됩니다. 미리 알아둬야 할 정보가 있을까요?? [12] 원스1973 24/04/16 1973
175794 [질문] 남자 크로스백 추천해주실 수 있을까요? [1] 살다보니별일이1146 24/04/15 1146
175793 [질문] 카카오 워크 익명 설문 문의 [2] 수타군1231 24/04/15 1231
175792 [질문] 초등 2학년 아이에게 적합한 폰 추천 부탁드립니다. [7] 쌍둥이아빠1255 24/04/15 1255
175791 [질문] 무선 마우스+스마트tv+pc 연결 관련 질문입니다 [1] 던멜1015 24/04/15 1015
175790 [질문] 갤럭시 S24 울트라 카메라 질문입니다 [3] Arya Stark577 24/04/15 577
175789 [질문] 조깅용 팬츠 추천 부탁 드리겠습니다. [8] 전반전0대0699 24/04/15 699
175788 [질문] 아주 간단한 수학 3D 그래프 프로그램 있을까요? [4] 햄찌쫓는겐지493 24/04/15 493
175787 [질문] 가압류, 근저당 많은 아파트 매매시 주의사항 여쭤봅니다. [4] 기다리다917 24/04/15 917
175786 [질문] 초등 여아 접이식 자전거 어떤가요? [3] 눈팅만일년513 24/04/15 513
175785 [질문] 지금 펨코와 일베랑 상관 없나요? [50] pecotek2512 24/04/15 2512
175784 [질문] 갤럭시 S24 + , S24 U 고민이네요. [12] SlamMarine797 24/04/15 797
175783 [질문] 셀프 상속진행해보신분 계실까요? [2] SG워너비630 24/04/15 630
175782 [질문] 차량 교체주기가 어떻게되세요? [38] 날아가고 싶어.1559 24/04/15 1559
목록 이전 다음
댓글

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