함수 이렇게 만들면 되는지요? 채택완료
댓글중 내 댓글이 잇는경우 색상을 변경하는 함수를 만들엇는데 제대로 만든건지 모르겟네요..
마스터분들 보시기에는 한심할지모르지만 가르침좀 부탁합니다.
좀더 간편하게 만들방법이나 문제 지적요.
get_mydet($list[$i][wr_comment], $bo_table, $list[$i][wr_id]);
// 내댓글이 잇는지 function get_mydet($comment, $bo_table, $wr_id) { global $g5, $member; $mydet= ''; if ($comment) { //////////////////////////본인코멘트가 잇는경우 $sql = "select count(wr_id) cnt from $g5[write_prefix]$bo_table where wr_parent='$wr_id' and wr_is_comment=1 and mb_id='{$member[mb_id]}' "; $cnt = sql_fetch($sql);
if ($cnt['cnt']>0) { $mydet= "".$comment.""; }else{ $mydet= "".$comment.""; }
} //////////////////////////본인코멘트가 잇는경우
return $mydet; }
답변 3개
list.skin.php 상단에 위에 작성한 함수를 넣고,
</p><p><code class="spaces"></code><code class="variable">$list</code> <code class="plain">= set_has_my_comment(</code><code class="variable">$list</code><code class="plain">, </code><code class="variable">$bo_table</code><code class="plain">, </code><code class="variable">$member</code><code class="plain">[</code><code class="string">'mb_id'</code><code class="plain">]); </code></p><p>
이렇게 하면 $list[$i]['has_my_comment'] 가 설정됩니다. 즉, 내 댓글이 있는 글의 경우에는 'has_my_comment' 가 true 로 설정이 되죠. for 문 안에서 각 항목을 출력할 때, 사용하시면 됩니다.
히어1님 코드처럼 표현하자면..
</p><p>// list.skin.php 의 목록 출력 루틴 </p><p>for($i=0; $i<count($list); $i++) {</p><p>... </p><p> if($list[$i]['has_my_comment']) { </p><p> $mydet= "<span class=\"det_my\" title=\"내가 작성한 댓글이 있음.\">".$list[$i]['comment_cnt']."</span>";
} else {
$mydet= "<span class=\"det\">".$list[$i]['comment_cnt']."</span>";
} </p><p>...</p><p>} // for </p><p>
댓글을 작성하려면 로그인이 필요합니다.
devdev 님 댓글처럼.. 리스트 항목 개수만큼 쿼리를 실행하게 해야 하는데 그것보다는 한번에 처리하는게 어떨까요..
</p><p>function set_has_my_comment($list, $bo_table, $mb_id)
{
$write_table = $GLOBALS['g5']['write_prefix'].$bo_table;
$wr_ids = array();
foreach($list as $row) {
array_push($wr_ids, $row['wr_id']);
}</p><p> // 게시판 목록의 wr_id 들을 콤마로 연결한 문자열로 만듬 </p><p> $wr_ids_list = implode($wr_ids, ',');
$sql = "SELECT wr_id, wr_parent FROM $write_table WHERE wr_parent IN ($wr_ids_list) AND wr_is_comment=1 and mb_id='$mb_id' GROUP BY wr_parent";
$res = sql_query($sql);
$has_my_comment = array();
while($row = sql_fetch_array($res))
{
array_push($has_my_comment, $row['wr_parent']);
}
for($i=0; $i<count($list); $i++)
{
if(in_array($list[$i]['wr_id'], $has_my_comment)) {
$list[$i]['has_my_comment'] = true;
} else {
$list[$i]['has_my_comment'] = false;
}
}
return $list;
} </p><p> </p><p> // 목록 항목마다 'has_my_comment' 설정 </p><p> $list = set_has_my_comment($list, $bo_table, $member['mb_id']); </p><p> </p><p> // 내 댓글이 있는 경우, 없는 경우.. 출력해봄 </p><p> foreach($list as $row) {
if($row['has_my_comment']) echo $row['wr_subject'] . ' : has my comment
';
else echo $row['wr_subject'] . ' : does not have my comment
';
} </p><p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
제가 만든게 게시판 리스트,최신글등등에 써먹을거라 부하를 감안하더라도 사용이 불가피한데
만들어주신 소스는 제 수준으로는 활용을 어덯게 해야하는지 모르겟네요 ;;;