그룹에 있는 모든글 뽑아오기..(아래글 그룹을 눌르면 이동할곳) > 그누3 팁자료실

그누3 팁자료실

그룹에 있는 모든글 뽑아오기..(아래글 그룹을 눌르면 이동할곳) 정보

그누호환 그룹에 있는 모든글 뽑아오기..(아래글 그룹을 눌르면 이동할곳)

본문

*학식님의 팁테크를 이용하였읍니다.

이또한 주석을 보고 사용하세요..

&반드시 gr_id=$gr_id변수가 전달되어야 합니다..그래야 어느그룹을 뽑을건가...
예)http://www.phil114.com/index.php?doc=gr_list.php&gr_id=linguistic
위처럼 gr_id=linguistic 요


#########소스시작#############
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

define("_DOCTYPE_", "DESIGN");

$begin_time = get_microtime();
$html_title = "필써치 그룹보기 $gr_id $page ";
if (!$member[mb_id]) { //멤버일때만 보이기.
alert("로그인 하십시오.", "./?doc=$cfg[bbs_dir]/mblogin.php&url=" . urlencode("./?doc=$doc"));
}
?>



<table width="98%" cellpadding=0 cellspacing=0 align=center>
<tr>
    <td width='' valign=top>

<?
$limit = 10; // 쿼리에서 limit 로 뽑아올 갯수
// TEMPORARY TABLE MAKE
$tmp_make = mysql_query("CREATE TABLE tmp (
  bo_table varchar(20) NOT NULL default '',
  bo_subject varchar(255) NOT NULL default '',
  wr_id int(11) NOT NULL auto_increment,
  ca_id int(11) NOT NULL default '0',
  wr_notice tinyint(4) NOT NULL default '0',
  wr_num int(11) NOT NULL default '0',
  wr_reply varchar(5) NOT NULL default '',
  wr_parent_id int(11) NOT NULL default '0',
  wr_comment int(11) NOT NULL default '0',
  wr_commentcnt int(11) NOT NULL default '0',
  wr_html tinyint(4) NOT NULL default '0',
  wr_secret tinyint(4) NOT NULL default '0',
  wr_recv_email tinyint(4) NOT NULL default '0',
  wr_subject varchar(255) NOT NULL default '',
  wr_content text NOT NULL,
  wr_1 text NOT NULL,
  wr_2 text NOT NULL,
  wr_link1 varchar(255) NOT NULL default '',
  wr_link2 varchar(255) NOT NULL default '',
  wr_link1_hit int(11) NOT NULL default '0',
  wr_link2_hit int(11) NOT NULL default '0',
  wr_file1 varchar(255) NOT NULL default '',
  wr_file2 varchar(255) NOT NULL default '',
  wr_file1_source varchar(255) NOT NULL default '',
  wr_file2_source varchar(255) NOT NULL default '',
  wr_file1_download int(11) NOT NULL default '0',
  wr_file2_download int(11) NOT NULL default '0',
  wr_hit int(11) NOT NULL default '0',
  wr_good int(11) NOT NULL default '0',
  wr_nogood int(11) NOT NULL default '0',
  mb_id varchar(20) NOT NULL default '',
  wr_passwd varchar(16) NOT NULL default '',
  wr_name varchar(20) NOT NULL default '',
  wr_email varchar(255) NOT NULL default '',
  wr_homepage varchar(255) NOT NULL default '',
  wr_datetime datetime NOT NULL default '0000-00-00 00:00:00',
  wr_ip varchar(15) NOT NULL default '',
  wr_user_agent varchar(255) NOT NULL default '',
  wr_update_datetime datetime NOT NULL default '0000-00-00 00:00:00',
  wr_update_ip varchar(15) NOT NULL default '',
  wr_update_user_agent varchar(255) NOT NULL default '',
  PRIMARY KEY  (wr_id),
  KEY index1 (wr_notice,wr_num,wr_reply),
  KEY index2 (wr_num,wr_parent_id),
  KEY index3 (wr_datetime)
 
        )");

// 게시판 환경 설정 테이블에서 각 게시판 BOARD 가져오기
$sql = " select a.bo_total_count, a.bo_subject, a.bo_table, b.gr_subject
            from $cfg[table_board] a, $cfg[table_group] b
            where a.gr_id = b.gr_id AND b.gr_id = '$gr_id' 
            order by b.gr_id, a.bo_table  ";
$result = sql_query($sql);

$테이블수 = mysql_num_rows($result);
$sql_limit = intval($limit/$테이블수) + 2;

// BOARD 별로 게시판 돌면서 검색한다
while($row = mysql_fetch_array($result)) {
$total_count+=$row[bo_total_count];
    $tbl = "{$cfg[write_table_prefix]}{$row[bo_table]}";

$sql2 = " select a.wr_id,
                    a.wr_parent_id,
                    a.mb_id,
                    a.wr_name,
                    a.wr_email,
                    a.wr_num,
                    a.wr_subject,
                    a.wr_content,
      a.wr_link1_hit,
      a.wr_link1,
      a.wr_file1,
      a.wr_1,
      a.wr_2, 
      a.wr_file2,        
                    a.wr_datetime,
                    b.mb_icon
                from $tbl a left join $cfg[table_member] b on (a.mb_id = b.mb_id)
where a.wr_comment = 0
                order by a.wr_id desc ";
$result2 = sql_query($sql2);

    // 검색 결과를 TEMPORARY 테이블에 집어 넣는다.
    for ($i = 0; $row2 = mysql_fetch_array($result2); $i++) {
            $wr_subject = $row2[wr_subject];
sql_query("INSERT tmp SET
  bo_table = '$row[bo_table]',
  bo_subject = '$row[bo_subject]',
  wr_parent_id = '$row2[wr_parent_id]',
  wr_html = '$row2[wr_html]',
  wr_subject = '".get_text(cut_str($wr_subject,255,'…'))."',
  wr_content = '".get_text(cut_str($row2[wr_content],220,'…'))."',
  wr_link1 = '$row2[wr_link1]',
  wr_link2 = '$row2[wr_link2]',
  wr_link1_hit = '$row2[wr_link1_hit]',
  wr_link2_hit = '$row2[wr_link2_hit]',
  wr_file1 = '$row2[wr_file1]',
  wr_file2 = '$row2[wr_file2]',
  wr_file1_source = '$row2[wr_file1_source]',
  wr_file2_source = '$row2[wr_file2_source]',
  wr_file1_download = '$row2[wr_file1_download]',
  wr_file2_download = '$row2[wr_file2_download]',
  wr_hit = '$row2[wr_hit]',
  wr_datetime = '$row2[wr_datetime]',
  wr_ip = '$row2[wr_ip]',
  wr_1 = '".get_text($row2[wr_1])."',
  wr_2 = '".get_text($row2[wr_2])."',
  wr_user_agent = '$row2[wr_user_agent]',
  wr_update_datetime = '$row2[wr_update_datetime]',
  wr_update_ip = '$row2[wr_update_ip]',
  wr_update_user_agent = '$row2[wr_update_user_agent]'
        ");
   
    // 파일 복사
        $srcdir = "./data/file/{$row[bo_table]}";
        $dstdir = "./data/file/tmp";
        @copy("$srcdir/$row2[wr_file1]", "$dstdir/$row2[wr_file1]");
        @copy("$srcdir/$row2[wr_file2]", "$dstdir/$row2[wr_file2]");
   
    }
    mysql_free_result($result2);
}
mysql_free_result($result);

if (!$rows) {
$rows=15;
}
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if (!$page) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

// TEMPORARY 테이블 정보 가져오기

// 정렬에 사용하는 QUERY_STRING
$qstr2 = "bo_table={$row[bo_table]}";
$qstr3 = "gr_id=$gr_id";
$qstr4 = "bo_table=tmp";

// 정렬
if (!$ssort) {
    $ssort  = "wr_id";
    $sorder = "";
}
$sql_order = " order by $ssort $sorder ";


$result = sql_query("SELECT * FROM tmp $sql_order desc limit $from_record, $rows ");

?>


<?
// 보여주기
if(mysql_num_rows($result) != 0) {
       
$link_visit="./?doc=gr_list.php&$qstr3&ssort=wr_link1_hit&$sorder=desc&rows=$rows&page=$page";//링크1힛트순으로보기   
$link_wr="./?doc=gr_list.php&$qstr3&ssort=wr_datetime&$sorder=desc&rows=$rows&page=$page";//등록일순보기
$link_li="./?doc=gr_list.php&$qstr3&ssort=wr_datetime&$sorder=desc&rows=45&page=$st";//45개씩보이기
$link_li2="./?doc=gr_list.php&$qstr3&ssort=wr_datetime&$sorder=desc&rows=25&page=$st";//25개씩보기
$ig="<img src='./image/12.gif' border=0 align=absmiddle>";
$add_href="<a href='./?doc=bbs/admin/boardgroupselect.php'>게시판생성</a>";
echo "
        <table width=100% cellspacing=3 cellpadding=2 align=center>";
echo "
        <tr><td height=30 colspan=10 style=padding-left:15px>
              <img src='./image/club_t.gif' border=0 align=absmiddle> <b><span style='font-weight:bold;color:#9DA800;font-size:10pt'>$group[gr_subject] >></span>
        ";     
if ($is_admin == 'default' || $is_admin == 'group') {// 관리자일 경우 그룹게시판생성으로 바로가기
                                                                echo $add_href;
                                                                        } 
echo "
        </td></tr>
        <tr><td height=1 colspan=10 bgcolor=d8d8d8></td></tr>
        <tr><td height=1 colspan=10 >
        ";         



?>
<style>
.pad4{padding-top:0px;padding-bottom:3px;padding-left:3px;padding-right:3px;}
.pad5{padding-top:0px;padding-bottom:3px;padding-left:3px;padding-right:3px;}
</style>
<?
echo"
<table width=100% cellpadding=3 cellspacing=0  align=center class='pad5'>   
<tr>
    <td valign=top>
  <table width=100% cellpadding=0 cellspacing=0  align=center><tr>";
        $t++;
        $gr_href="./$cfg[index]?doc=gr_list.php&gr_id=$gr_id";
        $icon_gr="<img src='./bbs/imgs/icon_gr.gif' border=0 align=absmiddle>";// 그룹명 앞에 올 이미지. 
        $ii="<img src='./image/gll.gif' border=0 align=absmiddle>";
          echo "
        <td  height=18 valign=top>
        <table width=100% cellpadding=3 cellspacing=0 >
        <tr>
        <td height=25 colspan=10 style='padding-left:3px;padding-right:3px' valign=middle> $icon_gr<a href='$gr_href' style='font-family:SDWebGothic9;font-size:10pt;;color:#0000CC;'> <b>$group[gr_subject] </b></a>
        $테이블수</b>개의 카테고리 <b>$total_count</b>개의 등록물 <b> $page 페이지</b> <span align='right' style='font-family:SDWebGothic9;font-weight:bold;padding-left:10'>  <a href=$link_$link_li2>▼ 25개씩 보기 </a>  <a href=$link_$link_li>▼ 45개씩 보기 </a> <a href=$link_visit> ▼ 방문순 정렬 </a> <a href=$link_wr> ▼ 등록순 정렬 </a></span>
        </td>
        </tr><tr><td align=center height=25 style='padding-left:7px;text-align:justify;'>";
        $sql2 = " select bo_subject, bo_table,gr_id,bo_total_count from $cfg[table_board] where gr_id = '$gr_id' order by bo_subject ";
        $result2 = sql_query($sql2);
        $l=0;
        $k=0;
        for ($j=0;$row2 = mysql_fetch_array($result2); $j++) {
        if($bo_table==no||$row2[bo_table]==appl||$bo_table==misc){}
        else{ 
        $bo_sub=cut_str(get_text($row2[bo_subject]),28,"");
        $co=$row2[bo_total_count];
        $k++;
        $l++;//게시판앞에 숫자 보이기 $bo_sub 앞에 $l을 넣어주면 숫자가 증가되면서 보임.
        echo "
        <a href='./?doc=bbs/gnuboard.php&bo_table=$row2[bo_table]' title='$row2[bo_subject]'><span align=left style='padding-left:7px;font-weight:bold;color:#0689B4;font-size:9pt'>$ii $bo_sub($co),</span></a>";
        if($k%6==0){//해당그룹내 게시판 6개보여준후 줄바꿈 $k%숫자 <=='숫자'로 보여줄 게시판수 조정
            echo " <br>";         
              if($k==20){
              echo "</td>";
              break;}
        }}
    }
    if($t%2==1){
    echo "</tr></table></td><td width=2></td><td>";}
    else{echo "</tr></table></td><td>";}
    mysql_free_result($result2);
    if($t%2==0) echo "<tr><td height=3></td></tr></tr><tr>";
    ?>
    </tr></table>
    </td>
</tr>
</table>





<?

echo "
        </td></tr>
        <tr><td height=1 colspan=10 bgcolor=d8d8d8></td></tr>
        ";
while($row = mysql_fetch_assoc($result)) {
$qstr2 = "bo_table={$row[bo_table]}";
 $j++;
$link_h="./?doc=$cfg[bbs_dir]/gblink.php&$qstr2&wr_id={$row[wr_parent_id]}&index=1";
$link_q="./?doc=$cfg[bbs_dir]/gnuboard.php&$qstr2&wr_id={$row[wr_parent_id]}";
$tg="target='_blank'";
 if (!($row[wr_file1])) {
  $file_image1="<b>이미지없음<b>";
 
  }
 if (@preg_match($cfg[image_extension], $row[wr_file1])) {
    $file_image1 = "./data/file/tmp/". $row[wr_file1];
$size = getimagesize($file_image1);
            if($size[1]>70 && $size[0] < 140){
            //$rate = $size[0] / $size[1];
            $height =70;
            $width = (int)((70 * $size[0])/ $size[1]);
            if( $width >140 ){
            $rate=  $width/$height;
            $width =140;
                          $height = (int)($rate * $height);
           
            }
           
            }else if($size[0] >140 && $size[1]< 70){
            //$rate = $size[0] / $size[1];
            $width = 140;
            $height=(int)((140* $size[1]) / $size[0]);
           
            }else if($size[0]>140 && $size[1]>70  ){
            $width = 140;
            $height=(int)((140* $size[1]) / $size[0]);
            if( $width >140 ){
            $rate=  $width/$height;
            $width =140;
                          $height = (int)($rate * $height);
           
            }
            if( $height>70 ){
            $rate=  $width/$height;
            $height =70;
                          $width = (int)($rate * $height);
            }
           
            }else{
            $width = $size[0];
            $height = $size[1];
    }
    }

 if (!($row[wr_file1])) {
  $file_image1="<img src='http://phil.e-pet.org/image/btgrs.gif' style='border:0px solid #333333'></a>";
  }
 else{
$file_image1 = "<img src='$file_image1' width='$width' height='$height' style='border:1px solid #444444;cursor:hand' >";
      }
        echo "
                <tr height=55>
    <td width=150  style='padding-top:2px;' align=center><a href='$link_h' $tg >
    $file_image1
    </td>
  <td colspan=2 style='padding-left:5px;padding-right:5px;padding-bottom:3px;padding-top:3px;text-align:justify;'>
    <table width=98% cellpadding=0 cellspacing=0 align=center>
      <tr>   
    <td style='padding-left:3px'>
    <a href='$link_h' $tg style='font-family: SDWebGothic9;font-weight:bold;color:#FF6305;font-size:9pt'><b>{$row[wr_subject]}</b></a>
    <a href='./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table={$row[bo_table]}' style='font-family: SDWebGothic9;font-weight:bold;color:#0689B4;font-size:8pt'>[{$row[bo_subject]}]</a>  <!--<?//<span style='color:#c8c8c8;font-size:8pt'> 방문자수 :{$row[wr_link1_hit] }</span>?>//-->
    </td>
    </tr>
    <tr>   
    <td style='padding-left:3px;text-align:justfy'>
    {$row[wr_content]}</a>
        </td>
    </tr>";
if($row[wr_1]&&$row[bo_table]==home_stay){//게시판명이 홈_스테이일경우 wr_1 이 잇으므로 보여지게 합니다.
      echo "  <tr>
    <td style='padding-left:3px;text-align:justfy;color:#336633;font-size:8pt'>
    주소 : {$row[wr_1]}
        </td>
    </tr>
    <tr>   
    <td style='padding-left:3px;text-align:justfy;color:#336633;font-size:8pt'>
    전화 : {$row[wr_2]}
        </td>
    </tr> ";}
     
 echo "     <td style='padding-left:3px;text-align:justfy'>
  <a href='$link_h' $tg style='color:#336633;font-size:8pt'>{$row[wr_link1]}</a>
        </td>
    </tr></table></td>
                </tr>
    ";

    }
} else {echo "<td height=25 align=center>등록된 글이 없습니다.</td>";
          //$st=$page-1;

}


?>

</table>

</td>
</tr>
</table>

<?
        //echo "$j";
        //echo "$total_count ";

mysql_free_result($result);
mysql_query("DROP TABLE tmp");
//if($j==0){$page=$page-1;}
$pagelist = get_paging(10,$page, $total_page, "./$cfg[index]?doc=gr_list.php&gr_id=$gr_id&ssort=$ssort&rows=$rows&page=");
if ($pagelist) {   
    echo "<table width=100% cellpadding=3 cellspacing=1><tr><td align=center style= 'font-size:13px;color:#0054ff'>$pagelist</td></tr></table>";
}

// 실행시간 측정
$run_time = get_microtime() - $begin_time;
echo($run_time);

?>
#########thtmRmx###############
추천
0

댓글 전체

만도님과 쪽지로 해결한 내용 이니까 참고 하세요..
어쩌면 안 될수도 있겠지만 가능 하리라 봅니다..
=============================================================>
질문: 이미지가 안나오고 에러가 날때....

답변: 이미지를 못가져오는건데

일단은 getimagesize 앞에 @를 붙이시고요....

전 그누 3.23 정도를 써요.... 그래서 최신의 것은 모르겠네요...

===================================================
질문: 이미지 안나옴

답변:

http://arttoart.pe.kr/gnu3/data/file/tmp/

tmp 폴더를 하나 만들어 주세요.... 안만들어져 있으면요... ftp로 보셔요...

이미지가 안들어 가나봐요..tmp 폴더에요...

tmp 에 이미지가 있는지 보시고요.. 퍼미션을 777이나 757dlsk 707로....

===================================================
질문: 사이즈가 일정하게 안나오는데...

답변: 원본 이미지 사이즈에 따라 변하는데요...

$size = getimagesize($file_image1);
            if($size[1]>70 && $size[0] < 140){
            //$rate = $size[0] / $size[1];
            $height =70;
            $width = (int)((70 * $size[0])/ $size[1]);
            if( $width >140 ){
            $rate=  $width/$height;
            $width =140;
                          $height = (int)($rate * $height);
           
            }
           
            }else if($size[0] >140 && $size[1]< 70){
            //$rate = $size[0] / $size[1];
            $width = 140;
            $height=(int)((140* $size[1]) / $size[0]);
           
            }else if($size[0]>140 && $size[1]>70  ){
            $width = 140;
            $height=(int)((140* $size[1]) / $size[0]);
            if( $width >140 ){
            $rate=  $width/$height;
            $width =140;
                          $height = (int)($rate * $height);
           
            }
            if( $height>70 ){
            $rate=  $width/$height;
            $height =70;
                          $width = (int)($rate * $height);
            }
           
            }else{
            $width = $size[0];
            $height = $size[1];
    }
    }
에서 잘 보정해 보세요....ㅋㅋ

==> 이부분은 아직 적용 안해봤음
=====================================================================

==> 링크가 잘 안먹힐때 만도님 답변

그러니깜 아까 링크를 수정하시라고...ㅋㅋ  링크 수정시 먼가 잘못하셨을꺼예요...

$link_h="./?doc=$cfg[bbs_dir]/gblink.php&$qstr2&wr_id={$row[wr_parent_id]}&index=1";  이부분을 찿아서

$link_h="./?doc=$cfg[bbs_dir]/gnuboard.php&bo_table={$row[bo_table]}&wr_id={$row[wr_parent_id]}"; <==이렇게 수정함
좋은 소스 잘 사용하겠습니다.
이전부터 소스가 상당히 궁금했는데 그런데 적용이 잘 않데네요.
그림파일을 첨부할시 다음과 같은 에러가 에러가 나는데,
경로상에 tmp라는 파일은 있어도 폴더는 없는데....


Warning: getimagesize(./data/file/tmp/577304f0_monitor01.gif) [function.getimagesize]: failed to create stream: Not a directory in /home/hosting_users/user_id/www/gnu3/gr_list.php on line 279
감사합니다.....
그런데 적용하는데 좀 에로사항이 있었습니다. 전 그냥 파일을 카피해서 data/file/tmp로 복사하지 않고 각
게시판의 폴더에서 불러오기를 했습니다.

그리고
$테이블수 = mysql_num_rows($result);
$sql_limit = intval($limit/$테이블수) + 2;  <======이부분이 자꾸 에러가 나서리....
걍  $sql_limit = 2; 이렇게 해서 사용하였습니다....

암튼 감사드립니다...^^
아따~~
지금 얼근 합니다..ㅋㅋ
&반드시 gr_id=$gr_id변수가 전달되어야 합니다..그래야 어느그룹을 뽑을건가...
예)http://www.phil114.com/index.php?doc=gr_list.php&gr_id=linguistic
위처럼 gr_id=linguistic 요 <===========이걸 어디서 정하죠?
취해서 모르겠네요...죄송^^
음.... 그렇군요...
그런데 위의 링크를 클릭하면 로그인하라고 나와서 회원가입을 해야 하는지...
혹시 스샷이라도 올려주시면 감사하겠습니다.....^^
전체 1,026
그누3 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT