묻고답하기

책 내 예제소스 :

function store_new_post($post)
{
  // 게시물을 검사하고 저장한다.

  $conn = db_connect();
  // 빈 필드가 없는지 확인한다.
  if(!filled_out($post))
  {
    return false;
  }
  $post = clean_all($post);

  // 부모가 있는 지 검사한다.
  if($post['parent'+ '+ ']!=0)
  {
    $query = "select postid from header where postid = '".$post['parent']."'";
    $result = mysql_query($query);
    if(mysql_numrows($result)!=1)
    {
      return false;
    }
  }

  // 겹치지 않는지 조사한다.
  $query = "select header.postid from header, body where
            header.postid = body.postid and
            header.parent = ".$post['parent']." and
            header.poster = '".$post['+ 'poster']."' and
            header.title = '".$post['title']."' and
            header.area = ".$post['area']." and
            body.message = '".$post['message']."'";
  $result = mysql_query($query);
  if (!$result)
  {
     return false;
  }
  if(mysql_numrows($result)>0)
     return mysql_result($result, 0, 0);

  $query = "insert into header values
            ('".$post['parent']."',
             '".$post['poster']."',
             '".$post['title']."',
             0,
             '".$post['area']."',
             now(),
             NULL
            )";
  $result = mysql_query($query);
  if (!$result)
  {
     return false;
  }

  // 이제 부모 글에 답글이 생겼다.
  $query = 'update header set children = 1 where postid = '.$post['parent'];
  $result = mysql_query($query);
  if (!$result)
  {
     return false;
  }

  // 게시물을 구별하는 아이디를 만든다. 어떤 게시물들은 아이디와 작성 시간을 제외한 헤더 정보가 같을 수 있다.
  $query = "
select header.postid from header left join body on header.postid = body.postid  
                   where parent = '".$post['parent']."'
                   and poster = '".$post['poster']."'
                   and title = '".$post['title']."'
                   and body.postid is NULL
";
  $result = mysql_query($query);
  if (!$result)
  {
     return false;
  }
  if(mysql_numrows($result)>0)
    $id = mysql_result($result, 0, 0);

  if($id)
  {
     $query = "insert into body values ($id, '".$post['message']."')";
     $result = mysql_query($query);
     if (!$result)
     {
       return false;
     }

    return $id;
  }
  
}

이건 웹 포럼 예제의 글 쓰기 부분에 관한 함수입니다. 글의 제목, 글쓴이, 쓴시간 등은 한쪽 테이블에, 글 본문은 또다른 테이블에 나누어서 저장합니다. 그런데 위쪽에 표시한 부분에서 본문을 저장하기 위한 id를 만들기 위해 실행하는 부분이 잘 이해가 되지 않는군요. 책에는 더이상의 설명이 없기에 질문해봅니다.
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
링구 이런거 어떻게만들어요??플래시입니다  
김기창 PHP책 내 예제의 Mysql 쿼리가 잘 이해되지 않아 질문합니다. [2] 2007.08.10
이정수 포토샵으로 슬라이스한후에-_- 나모에서; 링크를 걸었거든요? [1] 2007.08.10
박지혁 저의 마지막 소원입니다 도와주세요.. [3] 2007.08.10
차동진 슬라이딩 에드콘이 됐다 안됐다 하면서 에러가 납니다.  
우신명 win2003 iis 6.0에서 mysql 사용시에...  
로범 플래시 질문입니다^^*  
오라클 이 폰트 이름 아시는 분 계신가요?  
서호건 나모 레이어 때문에 문의드립니다... ㅠㅠ  
이정수 플래시 질문ㅠ 고수님들 제발 답변좀; [2] 2007.08.10
clrRk include 할때 여백이 생겨요!!  
졸라맥 php 질문;  
카스테라 HP-UX나 리눅스 Test용으로 열어져있는 곳 없나요?  
졸라맥 php질문; [1] 2007.08.10
wings 일러스트cs 질문입니다. [1] 2007.08.10
문창호 [플래시 액션] geturl 로 이동후 게시판 목록에 글이 없어요;;~ ㅠ geturl말구 다른거 없나요 ㅠ [3] 2007.08.10
권용택 xml과 mysql에 대해서요 ..  
김수낙 주소 링크와 관련된 에러문제 (아래 글썼던 사람입니다.) [3] 2007.08.10
정승문 이것줌 봐주세요 ㅠㅠ 서기님은 꼭봐주시구요 [2] 2007.08.10
이태훈 테이블 색상변경(롤오바) 소스문의 (예제있음)