테스트 사이트 - 개발 중인 베타 버전입니다

내가쓴댓글 불러오기 질문드립니다. 채택완료

그누배우자 3년 전 조회 1,456

안녕하세요. 개별 페이지에서 test게시판에 작성한 내 댓글을 불러오고 싶어서요..

 

<?php

$sql = " select * from g5_write_test where wr_is_comment = 1 and mb_id = '".$member['mb_id']."'";
$result = sql_query($sql); 
?>
<?php  for ($i=0; $row=sql_fetch_array($result); $i++) { ?>
<div style="margin-bottom:20px">
<p><a href="#">게시글제목 : <?php echo $row['subject'] ?></a></p>
<p>댓글내용 : <?php echo $row['wr_content'] ?></p>
<p>작성일 : <?php echo $row['wr_datetime'] ?></p>
</div>
<?php } ?>

 

이렇게 하니 잘 나오긴 하는데

댓글쓴 게시글의 제목이 안나옵니다.

wr_subject, subject  둘 다 해도 안나옵니다.

 

sql로 게시글 정보까지 불러와야 할 것 같은데 

방법을 모르겠습니다. 그리고 해당 게시물로 링크값도.. 어떻게 연결을 해야할지..ㅠㅠ

도움 부탁드립니다. ㅠㅠ

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

답변 2개

채택된 답변
+20 포인트
Dessi
3년 전

for문 안에

</p>

<p>$ori = " select * from g5_write_test where wr_is_comment = 0 and `wr_id` = '".$row['wr_parent']."'";</p>

<p>$ori = sql_fetch($ori);</p>

<p>echo $ori['wr_subject'];</p>

<p>

 

링크는

 

</p>

<p>//짧은 주소</p>

<p><a href="/bbs/board.php?bo_table=테이블이름&wr_id="<?php echo $ori['wr_id'];?>>링크</a></p>

<p> </p>

<p>// 긴주소</p>

<p><a href="<?php echo get_pretty_url("테이블이름",$ori['wr_id']);?>">링크</a></p>

<p>

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

답변에 대한 댓글 8개

그누배우자
3년 전
답변감사합니다

<?php
$sql = " select * from g5_write_test where wr_is_comment = 1 and mb_id = '".$member['mb_id']."'";
$result = sql_query($sql);
$ori = " select * from g5_write_test where wr_is_comment = 0 and wr_id = '".$row['wr_parent']."'";
$ori = sql_fetch($ori);
?>
<?php for ($i=0; $row=sql_fetch_array($result); $i++) { ?>
<div style="margin-bottom:20px">
<p>게시글제목 : <?php echo $ori['wr_subject'] ?></p>
<p>댓글내용 : <?php echo $row['wr_content'] ?></p>
<p>작성일 : <?php echo $row['wr_datetime'] ?></p>
</div>
<?php } ?>

요런식으로 하란말씀이신지요..
D
Dessi
3년 전
아뇨 ori가 for문 안에 들어가야합니다. ori where이 row인데 for에서 row가 선언 되기 때문에 안으로 넣으셔야 합니다.

<?php for ($i=0; $row=sql_fetch_array($result); $i++) {
$ori = " select * from g5_write_test where wr_is_comment = 0 and wr_id = '".$row['wr_parent']."'";
$ori = sql_fetch($ori);
?>

이런식으로 바꾸셔야합니다.

그리고 링크는 $ori['wr_id'] 가 아니고 $row['wr_parent']로 바꾸셔도 같으니 참고 하시면 되실것 같습니다.
D
Dessi
3년 전
설명을 드리자면 그누보드는 게시글 테이블에 댓글과 글이 같은 구조로 작성이 되고 wr_is_comment 필드값 여부(1 - 댓글 ,0 - 게시글)로 댓글인지 게시글인지 구분을 합니다.

그리고 댓글이 달린 원본글을 찾기 위해서 댓글은 wr_parent 필드에 원본 게시글의 wr_id를 넣어서 이렇게 작성 할수 있습니다.
그누배우자
3년 전
자세한 설명 감사드립니다.
염치없지만 한가지 더 질문드려도 될까요..ㅎㅎ

<?php
include_once('_common.php');
include_once(G5_THEME_MOBILE_PATH.'/head.php');
$sql = " select * from g5_write_test where wr_is_comment = 1 and mb_id = '".$member['mb_id']."'";
$result = sql_query($sql);
?>
<?php for ($i=0; $row=sql_fetch_array($result); $i++) {
$ori = " select * from g5_write_test where wr_is_comment = 0 and wr_id = '".$row['wr_parent']."'";
$ori = sql_fetch($ori);
?>
<div style="margin-bottom:20px">
<p>게시글제목 : <?php echo $ori['wr_subject'] ?></p>
<p>댓글내용 : <?php echo $row['wr_content'] ?></p>
<p>작성일 : <?php echo $row['wr_datetime'] ?></p>
</div>

<?php } else if (count($row) == 0) { ?>
등록하신 댓글이 없습니다.
<?php } ?>
<?php
include_once(G5_THEME_MOBILE_PATH.'/tail.php');


이런식으로 하니 잘됩니다.

하나 더 만들고 싶은게..
하단에 댓글이 없으면 "등록하신 댓글이 없습니다." 라고 하고 싶은데요
저렇게 하니 댓글이 있을경우 댓글 리스트 밑에 "등록하신 댓글이 없습니다"가 같이 나오더라구요
요 부분 자문을 좀 구해도 될까요..
D
Dessi
3년 전
<?php
include_once('_common.php');
include_once(G5_THEME_MOBILE_PATH.'/head.php');
$sql = " select * from g5_write_test where wr_is_comment = 1 and mb_id = '".$member['mb_id']."'";
$result = sql_query($sql);

$com_cnt = sql_num_rows($result);// 댓글이 있는지 확인
if($com_cnt > "0") {

for ($i=0; $row=sql_fetch_array($result); $i++) {
$ori = " select * from g5_write_test where wr_is_comment = 0 and wr_id = '".$row['wr_parent']."'";
$ori = sql_fetch($ori);
?>
<div style="margin-bottom:20px">
<p>게시글제목 : <?php echo $ori['wr_subject'] ?></p>
<p>댓글내용 : <?php echo $row['wr_content'] ?></p>
<p>작성일 : <?php echo $row['wr_datetime'] ?></p>
</div>

<?php } }else{ ?>
등록하신 댓글이 없습니다
<? } ?>

<?php
include_once(G5_THEME_MOBILE_PATH.'/tail.php');
?>

이렇게 해보세요.
그누배우자
3년 전
정말 감사합니다.
하단에 <php } ?>가 하나 빠진것 같아서 아래 처럼 해보았는데 화면이 안나오네요


<?php
include_once('_common.php');
include_once(G5_THEME_MOBILE_PATH.'/head.php');
$sql = " select * from g5_write_test where wr_is_comment = 1 and mb_id = '".$member['mb_id']."'";
$result = sql_query($sql);

$com_cnt = sql_num_row($result);// 댓글이 있는지 확인
if($com_cnt == "0") {

for ($i=0; $row=sql_fetch_array($result); $i++) {
$ori = " select * from g5_write_test where wr_is_comment = 0 and wr_id = '".$row['wr_parent']."'";
$ori = sql_fetch($ori);
?>

<div style="margin-bottom:20px">
<p>게시글제목 : <?php echo $ori['wr_subject'] ?></p>
<p>댓글내용 : <?php echo $row['wr_content'] ?></p>
<p>작성일 : <?php echo $row['wr_datetime'] ?></p>
</div>

<?php } ?>

<?php } else { ?>
등록하신 댓글이 없습니다
<?php } ?>


<?php
include_once(G5_THEME_MOBILE_PATH.'/tail.php');
D
Dessi
3년 전
사실 댓글 달고나서.. 수정을 했습니다.

- sql_num_row -> sql_num_rows 로 변경

- if문을 반대로 써서 맞게 변경 했습니다.

- for 문도 닫는부분 없던것 수정했습니다.


(5시 45분에 최종 수정했으니 그걸로 하심 되실거에요)
그누배우자
3년 전
정말감사합니다!^_^

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

$sql = " select a.*, b.wr_subject from g5_write_test a inner join  g5_write_test  b on a.wr_num=b.wr_num where a.wr_is_comment = 1 and a.mb_id = '".$member['mb_id']."'";
$result = sql_query($sql); 

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

답변에 대한 댓글 2개

그누배우자
3년 전
답변감사합니다.
작성해주신대로 적용해보니
한개는 제목이 나오면서 내용들이 잘 나오고
그 밑에 제목없이 동일한게 한개 더 나옵니다.
엑스엠엘
3년 전
조건이 하나 빠졌네요. 이것으로 해 보세요.
$sql = " select a.*, b.wr_subject from g5_write_test a inner join g5_write_test b on a.wr_parent=b.wr_id where a.wr_is_comment = 1 and a.mb_id = '".$member['mb_id']."'";
$result = sql_query($sql);

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

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

로그인