Skip to content

CHICPRO

  • Life Log
  • Cycling Log
  • Photo Log
    • Portrait
    • Landscape
    • Flower
    • Etc
  • Coding Log
  • Information

진행중인 전체 프로젝트 출력 페이지

2008-01-05 by 편리

어제 마신 술로 인한 숙취가 아직 가시지 않은 상태에서 출근을 했고 어떻게 하다보니 전체 프로젝트 출력페이지를 완성하게됐다.

사용자 삽입 이미지
프로젝트 게시판에 등록된 내용을 바탕으로 전체 프로젝트명과 그 프로젝트의 작업기간을 표시하도록 페이지를 만들었다.

게시판 스킨 작업 때 사용한 방법을 많이 사용했고 각 프로젝트별 시작일과 종료일을 구한 후 전체 프로젝트에서의 시작일, 종료일을
구하는 부분이 막혀서 시간이 걸렸다. 그외에 PHP 프로그램을 제대로 해본 적이 없고 MySQL 쿼리에 대해서도 잘 알지 못해서
DB의 데이터를 배열의 형태로 변수에 저장하는 부분에서 너무 많은 시간을 허비했다. 어제 만들다가 데이터를 받아오지 못하는
문제때문에 삽질을 많이 했는데.. 다행히 퇴근 전에 책을 보고 한 방법이 주효해서 아침에는 큰 어려움없이 예상보다 빨리 작업을
마칠 수가 있었다. 지금은 1차 완료가 된 상태이고 또 수정사항이 생기면 작업을 해야하겠지만 이걸 만든 내가 멋져보인다. ^^;

프로젝트명을 클릭하면 게시판의 view 창으로 이동을 해서 그 프로젝트의 상세작업 내역이 보이도록 구성을 했다.

아래 부분은 이번에 작성한 project.php 파일의 코드이다. 항상 말하지만 소스는 매우 허접하다. ^^;

<?
include_once(“./_common.php”);
include_once(“$g4[path]/lib/latest.lib.php”);

include_once(“./_head.php”);
?>

<?
    $bo_table = “test_01”;
    $write_table = “g4_write_”.$bo_table;

    //프로젝트 DB
    $sql = ” select * from $write_table where wr_1 = 0 order by wr_id asc “;
    $result = sql_query($sql);
    $ss = mysql_num_rows($result);
   
    $list = array();
    $proj_s = array();
    $proj_e = array();
   
    for($i=0; $row=sql_fetch_array($result); $i++) {
    $list[$i] = $row;
    }
   
    for($k=0; $k<$ss; $k++) {
    $ex3_field = explode(“|”,$list[$k][wr_3]);
    $ex4_field = explode(“|”,$list[$k][wr_4]);

   
    //시작날짜
    $start_day = $ex3_field[0];
    $tmp_day = $ex3_field[1];
    $j = 1;
    while($tmp_day) {
        $start_day = min($start_day, $tmp_day);
        $j++;
        $tmp_day = $ex3_field[$j];
    }
    //종료날짜
    $end_day = $ex4_field[0];
    $tmp_day = $ex4_field[1];
    $j = 1;
    while($tmp_day) {
        $end_day = max($end_day, $tmp_day);
        $j++;
        $tmp_day = $ex4_field[$j];
    }

    $proj_s[$k] = $start_day;
    $proj_e[$k] = $end_day;
    }
   
    $proj_start = min($proj_s);
    $proj_end = max($proj_e);

    $s_year = substr($proj_start, 0, 4);
    $s_month = substr($proj_start, 4, 2);
    if($s_month < 10) $s_month = substr($s_month, 1);
    $s_day = substr($proj_start, 6, 2);
    if($s_day < 10) $s_day = substr($s_day, 1);
   
    $e_year = substr($proj_end, 0, 4);
    $e_month = substr($proj_end, 4, 2);
    if($e_month < 10) $e_month = substr($e_month, 1);
    $e_day = substr($proj_end, 6, 2);
    if($e_day < 10) $e_day = substr($e_day, 1);

    $proj_day = (mktime(0, 0, 0, $e_month, $e_day, $e_year) – mktime(0, 0, 0, $s_month, $s_day, $s_year)) / 86400 + 1;

    $col_width = round(700/$proj_day);
   
?>
 <table width=900 cellpadding=0 cellspacing=0 border=0 align=center>
<tr><td height=2 bgcolor=#b0adf5 colspan=2></td></tr>
<tr><td style=’padding-left:10px’ height=38 bgcolor=#f8f8f9 colspan=3><strong>진행 중인 프로젝트 <?=$ss?>개</strong></td></tr>
<tr><td height=10 colspan=2></td></tr>

<tr height=30>
    <td width=200 align=center style=”border-left:#e7e7e7 1px solid;border-top:#e7e7e7 1px solid;” bgcolor=#f7f7f7 rowspan=3><strong>프로젝트</strong></td>
    <td width=700 align=center style=”border-left:#e7e7e7 1px solid;border-top:#e7e7e7 1px solid;border-right:#e7e7e7 1px solid;” bgcolor=#f7f7f7>작업일자</td>
</tr>
<tr>
    <td height=20 style=”padding-left:5px;border-left:#e7e7e7 1px solid;border-top:#e7e7e7 1px solid;border-right:#e7e7e7 1px solid;” bgcolor=#f8f8f9><?=$s_month?>월</td>
</tr>
<tr>
    <td>
    <table cellpadding=0 cellspacing=0 border=0>
        <tr>
<?     //전체 프로젝트 작업 달력 출력
    $border = “”;
    $md = $s_day;
    for($k=1; $k<=$proj_day; $k++) {
        if($k == $proj_day) $border = “border-right:#e7e7e7 1px solid;”;
        echo “<td width=$col_width height=20 style=’border-left:#e7e7e7 1px solid;border-top:#e7e7e7 1px solid;$border’ bgcolor=#f8f8f9 align=center>$md</td>”;
        $md++;
       
        $lastday=array(0,31,28,31,30,31,30,31,31,30,31,30,31);
        if ($s_year%4 == 0) $lastday[2] = 29;
        $end_md = $lastday[$s_month];
       
        if($end_md < $md) $md = 1;
    }
?>
        </tr>
    </table></td>
</tr>
<? //각 프로젝트명, 작업일 출력
for($i=0; $i<$ss; $i++) { ?>
<tr height=30>
    <td width=200 style=”border-left:#e7e7e7 1px solid;border-top:#e7e7e7 1px solid;padding:3px;”><a href=./bbs/board.php?bo_table=<?=$bo_table?>&wr_id=<?=$list[$i][wr_id]?>><strong><?=$list[$i][wr_subject]?></strong></a></td>
    <td style=”border-top:#e7e7e7 1px solid;border-right:#e7e7e7 1px solid;” align=center>
    <table cellpadding=0 cellspacing=0 border=0>
        <tr>
<?
    $md = $proj_start;
    $bgcolor = “”;
    $border = “”;
    $fontcolor=”#ffffff”;
    $tmp_date = $proj_s[$i];
    $tmp_date1 = $proj_e[$i];
    $dd = $s_day;
   
    for($k=0; $k<$proj_day; $k++) {
        if($k == $proj_day) $border = “border-right:#e7e7e7 1px solid;”;
        if($md >= $tmp_date) $bgcolor = “bgcolor=#7F9EEF”;
        if($md > $tmp_date1) $bgcolor = “”;
        if($md &
gt;= $tmp_date) $fontcolor = “#7F9EEF”;
        if($md > $tmp_date1) $fontcolor = “#ffffff”;
        echo “<td width=$col_width height=30 $bgcolor align=center style=’border-left:#e7e7e7 1px solid;$border’><font color=$fontcolor>$dd</font></td>”;
        $md = date(“Ymd”, mktime(0,0,0,$s_month  , $s_day+$k+1, $s_year));
        $dd++;

        $lastday=array(0,31,28,31,30,31,30,31,31,30,31,30,31);
        if ($s_year%4 == 0) $lastday[2] = 29;
        $end_md = $lastday[$s_month];
       
        if($end_md < $dd) $dd = 1;
       
    }
?>
        </tr>
    </table>
    </td>
</tr>
<? } ?>

<tr><td colspan=2 height=1 bgcolor=#E7E7E7></td></tr>
<tr><td width=900 align=center height=30 colspan=2></td></tr>
<tr><td width=900 height=10 background=”<?=$g4[‘path’]?>/img/copyright.gif” colspan=2></td></tr>
</table>

<?
include_once(“./_tail.php”);
?>

Post navigation

Previous Post:

오랜만에 뭉쳤다

Next Post:

한 주를 시작하는 월요일

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Recent Posts

  • php 배열 연산에서 + 와 array_merge 의 차이
  • pcntl_fork 를 이용한 다중 프로세스 실행
  • 아이폰 단축어를 이용하여 주중 공휴일엔 알람 울리지 않게 하기
  • 구글 캘린더 전체일정 재동기화
  • OpenLiteSpeed 웹서버에 HTTP 인증 적용
  • OpenLiteSpeed 웹어드민 도메인 연결
  • WireGuard를 이용한 VPN 환경 구축
  • Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
  • 맥 vim 세팅
  • 우분투 시스템 터미널쉘 zsh 로 변경

Recent Comments

  • 편리 on 업무관리용 그누보드 게시판 스킨
  • 임종섭 on 업무관리용 그누보드 게시판 스킨
  • 캐논 5D 펌웨어 | Dslr 펌웨어 업그레이드 방법 82 개의 베스트 답변 on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • Top 5 캐논 5D 펌웨어 Top 89 Best Answers on 캐논 EOS 30D 펌웨어 Ver 1.0.6 , EOS 5D 펌웨어 Ver 1.1.1
  • 편리 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 임팀장 on 워드프레스 애니메이션 gif 파일을 mp4로 변환하여 출력하기
  • 편리 on Notepad++ NppFTP 플러그인 수동 설치
  • paul-j on Notepad++ NppFTP 플러그인 수동 설치
  • YS on Windows 10 iCloud 사진 저장 폴더 변경
  • 편리 on Docker를 이용한 Centos7 + httpd + php 5.4 개발환경 구축

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
© 2025 CHICPRO | Built using WordPress and SuperbThemes