채택완료

공지사항을 이용해서  wr_4체크된글을 게시판 상단에서 랜덤으로 출력 하게 햇는데 중복으로 출력됩니다.

2019-04-22 (월) 19:10:32 2,786

공지사항을 이용해서  wr_4체크된글을 게시판 상단에서 랜덤으로 출력 하게 햇는데 중복으로 출력됩니다.

이거를 중복 출력 않할려고 하면은 어떻게 수정하여야 합니까?

고수님 도와주세요.

감사합니다.

    $sql = " select * from {$write_table} where wr_4 order by rand() ";
    $result = sql_query($sql);
    for ($k=0; $row = sql_fetch_array($result); $k++) {
    if (!$row['wr_id']) continue;
    
    $list_num = $total_count - ($page - 1) * $list_page_rows;
    $list[$i]['num'] = $list_num - $k;

    
    $notice_array[] = $row['wr_id'];
    
    if($k < $from_notice_idx) continue;
    
    $list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
    $list[$i]['wr_4'] = true;
    
    $i++;
    $notice_count++;
    
    if($notice_count >= $list_page_rows)
    break;
    }
 

459698887_1555927702.509.jpg

고수님 도와주세요 

감사합니다.

답변 2개 / 댓글 3개

채택된 답변
+20 포인트
2019-04-22 (월) 23:58:38

$list[$i]['wr_4'] = true; 로 하였다면 밑에 다시 false로 처리하는 부분도 있어야 할거 같고...

저 부분만 봐서는 알기 힘드네요

답변에 대한 댓글 2개

아미나스킨에서 bbs/list.php 파일에서 아래 소스만 추가 햐엿습니다.
false는 어떻게 사용 합니까?

$sql = " select * from {$write_table} where wr_4<>'' order by rand() ";

$result = sql_query($sql);
for ($k=0; $row = sql_fetch_array($result); $k++) {
if (!$row['wr_id']) continue;

$list_num = $total_count - ($page - 1) * $list_page_rows;
$list[$i]['num'] = $list_num - $k;


$notice_array[] = $row['wr_id'];

if($k < $from_notice_idx) continue;

$list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
$list[$i]['wr_4'] = true;

$i++;
$notice_count++;

if($notice_count >= $list_page_rows)
break;
}
false를 어떻게 처리했는지는 기본 list.php에서 $list[$i]['is_notice'] 부분을 참고바랍니다.

 $sql = " select * from {$write_table} where wr_4<>'' order by rand() ";

list.php에서는 wr_4='' <--이렇게 쿼리 조건을 주어야 중복되지않을 것입니다

답변에 대한 댓글 1개

아래처럼 햇는데 않됩니다. 게속 나타 납니다.ㅠㅠ

$sql = " select * from {$write_table} where wr_4<>'' order by rand() ";

$result = sql_query($sql);
for ($k=0; $row = sql_fetch_array($result); $k++) {
if (!$row['wr_id']) continue;

$list_num = $total_count - ($page - 1) * $list_page_rows;
$list[$i]['num'] = $list_num - $k;


$notice_array[] = $row['wr_id'];

if($k < $from_notice_idx) continue;

$list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
$list[$i]['wr_4'] = true;

$i++;
$notice_count++;

if($notice_count >= $list_page_rows)
break;
}

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