어려운거 하나 끝났습니다. > 자유게시판

자유게시판

어려운거 하나 끝났습니다. 정보

어려운거 하나 끝났습니다.

본문

게시판 상단에 추첨 하기 버튼 만들고 추천 버튼 클릭시 랜덤하게 글 1개를 골라서 특정 게시판으로 이동하는 기능 만들었습니다.
변수가 헛갈려서 오래 걸렸네요..
귀차니즘에 직접 적은것도 있구 ㅋㅋ

아래는 소스입니다.
참고 하세요.
<참고로 테이블 명은 강제로 지정했습니다. 자동으로 안받는게 좋아서요 ^^>

<?
<?
include_once("./_common.php");

// $query = "select * from g4_write_kira_1 order by menu_no asc";
$query = "select * from g4_write_kira_1";
$result = mysql_query($query);
$rand_num = mysql_affected_rows();
?>

 

<!-- 랜덤추첨 -->
<script>
function rand() {
tot=<?=$rand_num?> // 자료수
cnt=1; // 추첨인원
data=new Array(tot);

<?
for ($i = 0; $i < $rand = mysql_fetch_array($result); $i++) {
$num = $i+1;


echo <<<TEXT
data[{$num}]=new Array("{$rand[wr_id]}");
TEXT;
}?>

lot=new Array(tot);
lot[1]=0;

for (i=1;i<=cnt;i++)
{
    flag=0;
    while(flag==0) {
    result=Math.floor(Math.random()*tot+1);
   
    for(j=1;j<=i;j++) {
       if (result==lot[j]) {
          flag=0;
          break;
       } else {
          flag=1;
       }
    }
   
    }
    lot[i]=result;
}
temp=0;
for (i=1;i<=cnt-1;i++)  {
for (j=i+1;j<=cnt;j++) {
 if (lot[i]>lot[j]) {
  temp=lot[i];
  lot[i]=lot[j];
  lot[j]=temp;
 }
}
}

for (i=1;i<=cnt;i++)  {
 window.location = "?id="+data[lot[i]];
}
}
</script>

<?
if($id == "undefined"){
  echo "추첨될 업체가 없습니다.";
  }else if($id == ""){
?>
<form name="form">
<input type="button" value="추첨하기 " onClick="rand();">
</form>
<?
}else if ($id == $id){
?>
 값으로 접근하셨습니다.<br>
<?
$query2 = "select * from g4_write_kira_1 where wr_id = '$id' order by wr_id";
$result2 = mysql_query($query2);
$value = mysql_fetch_array($result2);
echo $value[wr_subject];
?>

 

<?
///////////////////////////////////////////// 환경설정
$sw = "copy";                              // 이동으로 설정
$write_table = "g4_write_kira_1";          // 현제게시판
///////////////////////////////////////////// 현제게시판 정보 불러오기
$query1 = "select * from g4_write_kira_1"; //
$result1 = mysql_query($query1);           //
$rand_ = mysql_fetch_array($result1);      //
///////////////////////////////////////////// 현제게시판 정보 불러오기 끝
$wr_id_list = $id;                         // 아이디 값 변수 지정
$bo_table = "kira_1";                      // 원본 게시판 테이블명
$move_bo_table = "kira2";                  // 이동되는 게시판 테이블명
$move_bo_table_name = "kira2";             // 이동되는 게시판 테이블명
$wr_num = $id;                             // 게시판 속성(wr_num) 담기
///////////////////////////////////////////// 환경설정 끝


// 원본 파일 디렉토리
$src_dir = "$g4[path]/data/file/$bo_table";

$save = array();
$save_count_write = 0;
$save_count_comment = 0;
$cnt = 0;

// SQL Injection 으로 인한 코드 보완
//$sql = " select distinct wr_num from $write_table where wr_id in (" . stripslashes($wr_id_list) . ") order by wr_id ";
$sql = " select distinct wr_num from $write_table where wr_id in ($wr_id_list) order by wr_id ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
    $wr_num = $row[wr_num];
    for ($i=0; $i<count($move_bo_table_name); $i++)
    {
        $move_bo_table = $move_bo_table_name;
        $move_write_table = $g4['write_prefix'] . $move_bo_table;

        $src_dir = "$g4[path]/data/file/$bo_table"; // 원본 디렉토리
        $dst_dir = "$g4[path]/data/file/$move_bo_table"; // 복사본 디렉토리

        $count_write = 0;
        $count_comment = 0;

        $next_wr_num = get_next_num($move_write_table);

        $sql2 = " select * from $write_table where wr_num = '$wr_num' order by wr_parent, wr_comment desc, wr_id ";
        $result2 = sql_query($sql2);
        while ($row2 = sql_fetch_array($result2))
        {
            $nick = cut_str($member[mb_nick], $config[cf_cut_name]);
            if (!$row2[wr_is_comment] && $config[cf_use_copy_log])
                $row2[wr_subject] .= "[지정]";

            $sql = " insert into $move_write_table
                        set wr_num            = '$next_wr_num',
                            wr_reply          = '$row2[wr_reply]',
                            wr_is_comment     = '$row2[wr_is_comment]',
                            wr_comment        = '$row2[wr_comment]',
                            wr_comment_reply  = '$row2[wr_comment_reply]',
                            ca_name           = '".addslashes($row2[ca_name])."',
                            wr_option         = '$row2[wr_option]',
                            wr_subject        = '".addslashes($row2[wr_subject])."',
                            wr_content        = '".addslashes($row2[wr_content])."',
                            wr_link1          = '".addslashes($row2[wr_link1])."',
                            wr_link2          = '".addslashes($row2[wr_link2])."',
                            wr_link1_hit      = '$row2[wr_link1_hit]',
                            wr_link2_hit      = '$row2[wr_link2_hit]',
                            wr_trackback      = '".addslashes($row2[wr_trackback])."',
                            wr_hit            = '$row2[wr_hit]',
                            wr_good           = '$row2[wr_good]',
                            wr_nogood         = '$row2[wr_nogood]',
                            mb_id             = '$row2[mb_id]',
                            wr_password       = '$row2[wr_password]',
                            wr_name           = '".addslashes($row2[wr_name])."',
                            wr_email          = '".addslashes($row2[wr_email])."',
                            wr_homepage       = '".addslashes($row2[wr_homepage])."',
                            wr_datetime       = '$row2[wr_datetime]',
                            wr_last           = '$row2[wr_last]',
                            wr_ip             = '$row2[wr_ip]',
                            wr_1              = '".addslashes($row2[wr_1])."',
                            wr_2              = '".addslashes($row2[wr_2])."',
                            wr_3              = '".addslashes($row2[wr_3])."',
                            wr_4              = '".addslashes($row2[wr_4])."',
                            wr_5              = '".addslashes($row2[wr_5])."',
                            wr_6              = '".addslashes($row2[wr_6])."',
                            wr_7              = '".addslashes($row2[wr_7])."',
                            wr_8              = '".addslashes($row2[wr_8])."',
                            wr_9              = '".addslashes($row2[wr_9])."',
                            wr_10             = '".addslashes($row2[wr_10])."' ";
            sql_query($sql);

            $insert_id = mysql_insert_id();

            // 코멘트가 아니라면
            if (!$row2[wr_is_comment])
            {
                $save_parent = $insert_id;

                $sql3 = " select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' order by bf_no ";
                $result3 = sql_query($sql3);
                for ($k=0; $row3 = sql_fetch_array($result3); $k++)
                {
                    if ($row3[bf_file])
                    {
                        // 원본파일을 복사하고 퍼미션을 변경
                        @copy("$src_dir/$row3[bf_file]", "$dst_dir/$row3[bf_file]");
                        @chmod("$dst_dir/$row3[bf_file]", 0606);
                    }

                    $sql = " insert into $g4[board_file_table]
                                set bo_table = '$move_bo_table',
                                    wr_id = '$insert_id',
                                    bf_no = '$row3[bf_no]',
                                    bf_source = '$row3[bf_source]',
                                    bf_file = '$row3[bf_file]',
                                    bf_download = '$row3[bf_download]',
                                    bf_content = '".addslashes($row3[bf_content])."',
                                    bf_filesize = '$row3[bf_filesize]',
                                    bf_width = '$row3[bf_width]',
                                    bf_height = '$row3[bf_height]',
                                    bf_type = '$row3[bf_type]',
                                    bf_datetime = '$row3[bf_datetime]' ";
                    sql_query($sql);

                    if ($sw == "move" && $row3[bf_file])
                        $save[$cnt][bf_file][$k] = "$src_dir/$row3[bf_file]";
                }

                $count_write++;

                if ($sw == "move" && $i == 0)
                {
                    // 스크랩 이동
                    sql_query(" update $g4[scrap_table] set bo_table = '$move_bo_table', wr_id = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");

                    // 최신글 이동
                    sql_query(" update $g4[board_new_table] set bo_table = '$move_bo_table', wr_id = '$save_parent', wr_parent = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");
                }
            }
            else
            {
                $count_comment++;

                if ($sw == "move")
                {
                    // 최신글 이동
                    sql_query(" update $g4[board_new_table] set bo_table = '$move_bo_table', wr_id = '$insert_id', wr_parent = '$save_parent' where bo_table = '$bo_table' and wr_id = '$row2[wr_id]' ");
                }
            }

            sql_query(" update $move_write_table set wr_parent = '$save_parent' where wr_id = '$insert_id' ");

            if ($sw == "move")
                $save[$cnt][wr_id] = $row2[wr_parent];

            $cnt++;
        }


        sql_query(" update $g4[board_table] set bo_count_write   = bo_count_write   + '$count_write'   where bo_table = '$move_bo_table' ");
        sql_query(" update $g4[board_table] set bo_count_comment = bo_count_comment + '$count_comment' where bo_table = '$move_bo_table' ");
    }

    $save_count_write += $count_write;
    $save_count_comment += $count_comment;
}

if ($sw == "move")
{
    for ($i=0; $i<count($save); $i++)
    {
        for ($k=0; $k<count($save[$i][bf_file]); $k++)
            @unlink($save[$i][bf_file][$k]);   

        sql_query(" delete from $write_table where wr_parent = '{$save[$i][wr_id]}' ");
        sql_query(" delete from $g4[board_new_table] where bo_table = '$bo_table' and wr_id = '{$save[$i][wr_id]}' ");
        sql_query(" delete from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '{$save[$i][wr_id]}' ");
    }
    sql_query(" update $g4[board_table] set bo_count_write = bo_count_write - '$save_count_write', bo_count_comment = bo_count_comment - '$save_count_comment' where bo_table = '$bo_table' ");
}
?>

 

 

<?}?>

추천
0
  • 복사

댓글 11개

darby님의 말씀이 맞습니다.

저 같은경우는 장대비 주석을 많이 쓰는데..
구분하기 쉽고 추가한것을 보기 편해서 좋더라구요.
일부 같은경우는 더 불편하다고들 하는데...
이해가 안간다는 ^^
ㅋㅋㅋㅋ
제가 자주 쓰는 주석 기법입니다.
주석에 모양을 낼경우 주석이 확실히 눈에 띄기 때문에 수정하기 쉽더라구요.
그럴경우도 있지요.
아직도 페이스북은 문제가 많네요...
도대체 어떻게 해야 할지 모르겠다는...
^^
그런데 다고치셨나요???
© SIRSOFT
현재 페이지 제일 처음으로