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

도와주세요 ㅠㅠ 댓글 갯수 표시에서...ㅠㅠ 채택완료

송상준 6년 전 조회 3,480

안녕하세요 그누보드 초보입니다 ㅜㅜ

 

일전에 여기서 도움을 받아 기존에 list_skin.php에서 최근 7일간 등록된 댓글 갯수를 목록에 표시하였는데요.

 

for ($i=0; $i<count($list); $i++) {

$sql = "select count(*) as cnt from {$write_table} where wr_datetime>=DATE_ADD(now(), interval -1 WEEK)  and wr_parent='{$list[$i]['wr_id']}' and wr_is_comment=1";

$rows = sql_fetch($sql);

$com_count = (int)$rows['cnt'];

 

출력은 $com_count로

 

이렇게 해서 완벽하게 글목록에서 출력이 되는데

 

다음지도 api에서 다수의 마커 인포창에 최근 7일간 등록된 댓글 갯수를 표시하려니 너무너무 힘이 듭니다. 벌써 이틀째 머리 짜내고 있어요 ㅠㅠ

 

다음지도 api상에서

</p>

<p><?

$sql = " select * from {$write_table} order by wr_id asc ";

$result = sql_query($sql);

$cnt = 0;</p>

<p>while ($row = sql_fetch_array($result))

{ 

    if($row[wr_29] && $row[wr_30]) {

    for ($i=0; $i<count($list); $i++) {

    $sql = "select count(*) as cnt from {$write_table} where wr_datetime>=DATE_ADD(now(), interval -1 WEEK)  and wr_parent='{$list[$i]['wr_id']}' and wr_is_comment=1";

    $rows = sql_fetch($sql);

    $com_count = (int)$rows['cnt'];

    ?>

    // 마커를 생성합니다

    var marker = new daum.maps.Marker({

        map: map, // 마커를 표시할 지도

        position: new daum.maps.LatLng(<?=$row[wr_29]?>, <?=$row[wr_30]?>) // 마커의 위치

    });

    

    var iwContent = '<div style="width:150px;text-align:center;padding:10px 0;"><?=$row[wr_subject]?></div>
  <?=$row[wr_10]?>
  <?=$row[wr_11]?>
  <?=$row[wr_12]?>
  <?=$row[wr_13]?>
  <?=$row[wr_14]?>

  <a href="./board.php?bo_table=<?=$GLOBALS['bo_table']?>&wr_id=<?=$row[wr_id]?>" style="color:blue">방보기</a>


  최근일주일 등록공실 <?php echo $com_count?>개

',

        removable = true; // removeable 속성을 ture 로 설정하면 인포윈도우를 닫을 수 있는 x버튼이 표시됩니다</p>

<p>    var infowindow = new daum.maps.InfoWindow({

        content: iwContent,

        removable : removable

    });</p>

<p>    // 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다

    // 이벤트 리스너로는 클로저를 만들어 등록합니다 

    // for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다

    //daum.maps.event.addListener(marker, 'click', br_redirect(positions[i].wr_id));

    // 마커에 click 이벤트를 등록합니다

    daum.maps.event.addListener(marker, 'click', makeOverListener(map, marker, infowindow)); 

<?

    $cnt++;

}

}

}

?>

 

여기서 추가하려니 for문을 넣고 하는것도 안되고 제가 초보다 보니 이것저것 시도해봐도 되질 않습니다 ㅠㅠ

 

어떻게 해야 뜰까요 ㅠㅠ

 

도와주세요 ㅠㅠ

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

답변 6개

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

지도 출력이 리스트인지? 본문인지 모르지만요.

 

<?php
$sql="select * from {$write_table} order by wr_id asc";
$result=sql_query($sql);
$cnt=0;
for($i=0; $row=sql_fetch_array($result); $i++) {

if($row['wr_29'] && $row['wr_30']) {

$sql="select count(*) as cnt from {$write_table} where wr_datetime>=DATE_ADD(now(), interval -1 WEEK)  and wr_parent='{$row['wr_id']}' and wr_is_comment=1";
$rows=sql_fetch($sql);
$com_count=(int)$rows['cnt'];
?>
// 마커를 생성합니다
var marker = new daum.maps.Marker({
map: map, // 마커를 표시할 지도
position: new daum.maps.LatLng(<?php echo $row['wr_29']?>, <?php echo $row['wr_30']?>) // 마커의 위치
});

var iwContent='<div style="width:150px;text-align:center;padding:10px 0;"><?php echo $row['wr_subject']?></div><br>  <?php echo $row['wr_10']?><br><?php echo $row['wr_11']?><br><?php echo $row['wr_12']?><br>  <?php echo $row['wr_13']?><br>  <?php echo $row[wr_14]?><br><br>  <a href="./board.php?bo_table=<?php echo $GLOBALS['bo_table']?>&wr_id=<?php echo $row['wr_id']?>" style="color:blue">방보기</a><br><br><br>  최근일주일 등록공실 <?php echo $com_count?>개<br><br>',
removable = true; // removeable 속성을 ture 로 설정하면 인포윈도우를 닫을 수 있는 x버튼이 표시됩니다
var infowindow = new daum.maps.InfoWindow({
content: iwContent,
removable : removable
});
// 마커에 mouseover 이벤트와 mouseout 이벤트를 등록합니다
// 이벤트 리스너로는 클로저를 만들어 등록합니다
// for문에서 클로저를 만들어 주지 않으면 마지막 마커에만 이벤트가 등록됩니다
//daum.maps.event.addListener(marker, 'click', br_redirect(positions[i].wr_id));
// 마커에 click 이벤트를 등록합니다
daum.maps.event.addListener(marker, 'click', makeOverListener(map, marker, infowindow));
<?php
$cnt++;
}
?>

 

 

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

답변에 대한 댓글 1개

송상준
6년 전
조민님 또 도움주셔서 감사해요ㅜㅜ
리스트에서 뜨는거구요 ㅜㅜ
적용해 보았는데 아직 일주일 댓글은 반응이 없구요 ㅜㅜ
간혈적으로 조회수는 카운트가 되요 ㅜㅜ 10개중에 5개 정도요 ㅜㅜ

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

6년 전

@송상준 

무슨 말씀인지 이해가 안됩니다.

페이지가 어디로 넘어가는지.... 

소스가 수정 되었으면 그에 맞게 교정/수정이 필요할 수도 이겠죠.

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

답변에 대한 댓글 1개

송상준
6년 전
조민님 해결했어요 ㅠㅠ
첫번째로 주신 코드로 $row 쓰고 게시글등록날짜 삭제하니 완벽하게 됩니다 ㅠㅠ
매번 도움주셔서 감사합니다 ㅠㅠㅠㅠㅠㅠㅠ

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

6년 전

@송상준

반복문을 중복으로 불러 오신것 같은데요..

처음 답변 무시하시구요..

간결하게 ....

 

질문으로 올린 소스를 살펴서

 

<?
$sql = " select * from {$write_table} order by wr_id asc ";
$result = sql_query($sql);
$cnt = 0;
while ($row = sql_fetch_array($result))
{
if($row[wr_29] && $row[wr_30]) {
for ($i=0; $i<count($list); $i++) {
$sql = "select count(*) as cnt from {$write_table} where wr_datetime>=DATE_ADD(now(), interval -1 WEEK)  and wr_parent='{$list[$i]['wr_id']}' and wr_is_comment=1";
$rows = sql_fetch($sql);
$com_count = (int)$rows['cnt'];
?>

 

위에 소스를 아래 소스로 변경해 보세요.

 

<?php
$cnt=0;
for($i=0; $i<count($list); $i++) {

if($list[$i]['wr_29'] && $list[$i]['wr_30']) {

$sql="select count(*) as cnt from {$write_table} where wr_datetime>=DATE_ADD(now(), interval -1 WEEK) and wr_parent='{$list[$i]['wr_id']}' and wr_is_comment=1";
$rows=sql_fetch($sql);
$com_count=(int)$rows['cnt'];
?>

 

다음) 

 

이글 바로 위에 올린 사용자분의 소스중

 

$row - > $list[$i] 이런식으로 모두 바꿔줍니다

예 : $row['wr_10']  - > $list[$i]['wr_10'] 이런식으로

 

다음)

 

for문을 닫아주는 소스를

 

<?php
$cnt++;
}
}
?>

 

윗 소스처럼 되도록...

답변글 잘 보시고.

절충해서 참고해 보세요.

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

답변에 대한 댓글 3개

송상준
6년 전
감사합니다 조민님 완벽하게 조회수 일주일 공실 다 뜹니다 ㅜㅜ
다만 도움주신 코드 적용시 wr_29 wr_30 이 지도 좌표값인데 전페 100개가 있으면 절반 50개정도밖에 표시를 안합니다 ㅜㅜ
여튼 도움 주셔서 정말 감사합니다 ㅜㅜ
송상준
6년 전
아... 좌표 wr_29 wr_30을 한페이지안에있는 목록만 표시하고 있어요 ㅜㅜ 페이지 넘어가는 게시글들의 좌표를 불러들이질 못하고 있어요 ㅜㅜ
송상준
6년 전
조민님 해결했어요 ㅠㅠ
첫번째로 주신 코드로 $row 쓰고 게시글등록날짜 삭제하니 완벽하게 됩니다 ㅠㅠ
매번 도움주셔서 감사합니다 ㅠㅠㅠㅠㅠㅠㅠ
정말정말 감사합니다 ㅠㅠ

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

6년 전

@송상준

조회수라뇨?

질문으로 올리신 소스에는 조회수 출력 변수는 없는거 같은데요?

질문글에 소스를 토대로 조회수라면  $row['wr_hit'] 일듯 싶네요.

 

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

답변에 대한 댓글 3개

송상준
6년 전
<?php echo $list[$i]['wr_hit'] 이것 넣엇어요 그뒤에 ㅜㅜ
송상준
6년 전
var iwContent = '<div style="width:150px;text-align:center;padding:10px 0;"><?=$row[wr_subject]?></div><br>&nbsp;&nbsp;<?=$row[wr_10]?><br>&nbsp;&nbsp;<?=$row[wr_11]?><br>&nbsp;&nbsp;<?=$row[wr_12]?><br>&nbsp;&nbsp;<?=$row[wr_13]?><br>&nbsp;&nbsp;<?=$row[wr_14]?><br><br>&nbsp;&nbsp;<a href="./board.php?bo_table=<?=$GLOBALS['bo_table']?>&wr_id=<?=$row[wr_id]?>" style="color:blue">방보기</a><br><br><br>&nbsp;&nbsp;최근일주일 등록공실 <?php echo $com_count?>개<br><br><div class="gall_info"><span class="sound_only">조회 </span><strong><i class="fa fa-eye" aria-hidden="true"></i> <?php echo $list[$i]['wr_hit'] ?></strong><?php if ($is_good) { ?><span class="sound_only">추천</span><strong><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $list[$i]['wr_good'] ?></strong><?php } ?><?php if ($is_nogood) { ?><span class="sound_only">비추천</span><strong><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $list[$i]['wr_nogood'] ?></strong><?php } ?><span class="sound_only">작성일 </span><span class="date"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span></div>',

이렇게요 ㅜㅜ
송상준
6년 전
$row 로 하니 조회수랑 추천 비추천 전부 뜨고 날짜 안뜨고 일주일 댓글공실은 안떳어요 ㅜㅜ

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

송상준
6년 전

댓글 개수랑 조회수도 표시하고픈데 뜨질 않아요 ㅠㅠ

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

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

송상준
6년 전

8~12줄은 제가 막 추가한건데 어디에 넣어야 할지를 모르겠어요 ㅠㅠ

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

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

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

로그인