어려운거 하나 끝났습니다. 정보
어려운거 하나 끝났습니다.-
Terrorboys 자기소개 아이디로 검색 회원게시물 (112.♡.♡.4)
- 1,505

본문
게시판 상단에 추첨 하기 버튼 만들고 추천 버튼 클릭시 랜덤하게 글 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개


저 같은경우는 장대비 주석을 많이 쓰는데..
구분하기 쉽고 추가한것을 보기 편해서 좋더라구요.
일부 같은경우는 더 불편하다고들 하는데...
이해가 안간다는 ^^


제가 자주 쓰는 주석 기법입니다.
주석에 모양을 낼경우 주석이 확실히 눈에 띄기 때문에 수정하기 쉽더라구요.


아직도 페이스북은 문제가 많네요...
도대체 어떻게 해야 할지 모르겠다는...
^^
그런데 다고치셨나요???


저에게 감사할게 아니죠
그누에 감사를 ~~
전 차려진 밥상에 계란후라이 부쳐서 올린것 뿐이라는...

이런생각을 어떻게 하셨죠!~!

필요해서 짰어요 ㅠ.ㅠ;;;;