웹마스터 팁

q1.gif
초보자가 php를 공부하면 실제로 많은 어려움이 있습니다.
책을 쓴 사람들은 아주 쉽게 썼다고 하지만, 공부하는 사람들은 어떻게 db 및 쿼리문이 조화를 이루어 움직이는지 보려고 하지만, 진도가 조금 나가면 그냥 샘플을 내놓고 따라 하라고 합니다.
그것도, 스타일시트로 묶어서 내용을 썼기 때문에 초보자가 보기에는 아주 어렵습니다. 그래서 그냥 초보자가 작성한 php왕초보입문기를 나름대로 정리하여 올려 봅니다.
누구나 입문이 중요하듯이 입문만 하면 나름대로 해보겠는데 하는 사람에게 도움이 되리라 생각되어집니다.
(주)처음 그림을 보면서 천천히 내용을 보시면 쉽게 이해되리라 생각됩니다.
1.처음 테이블은 아주 간단한, 예를 들어 한줄보고를 한다고 가정했을 때 입니다.
  (잡다한 것은 생략하고 아주 간단하게 테이블을 만들었습니다.)
2.쿼리문하고 문서file관계를 나름대로 정리한 것입니다.
  (문서file은 아래에 나오므로 그냥 그대로 copy해서 올려서 사용하면 됩니다.)

==>설명시작(1번은 기본적인 html로 간단히 포맷하시면 됩니다....생략)

1.my_sql에서 테이블 및 기타 쿼리문 및 array함수 정리(작성법은 책을 보고 작성하시고 여기서는 결과만 정리)
①my_sql 로긴
-새롬데이타맨이나 SSH Secure Shell프로그램에서
   로긴하고 비번넣고 enter하면
   Last login: Fri Jan 14 20:32:36 2005 from 211.231.76.225
   [abcdef@host36 abcedef]$ 커서
   (**아래는 제가 쓰는 방법=>값을 넣고 위 '커서'에 붙여 넣기하면...... mysql>   이라고 나오겠죠..
    /usr/local/mysql/bin/mysql  디비명 -u 아이디 -p비번;
②테이블 작성(테이블명은 p_chobo라 하고 필드는 no포함하여 4개로 함: no, id_보고자, name_보고대상, cont01_보고내용)
   create table p_chobo(no int primary key not null auto_increment ,id varchar(20),name varchar(20),cont01 text);
②주요 쿼리문(4개)
   select문  :  select no,id,name,cont01 from p_chobo
   insert문   :  insert into p_chobo( no,id,name,cont01)values('$no','$id','$name','$cont01')
   update문 :  update p_chobo set no='$no',id='$id',name='$name',cont01='$cont01'
   delete문  :  delete from p_chobo where no=$no
③array배열(함수는 문서내용 참조 $current_row = mysql_fetch_row($변수);)
   $no=$current_row[0];$id=$current_row[1];$name=$current_row[2];$cont01=$current_row[3];

2.문서file설명(==>이해하기 힘들면 my_sql에서 db테이블을 만들고, 5개 문서를 서버에 올리면 결과 바로 볼 수 있습니다.)
   문서file은 처음에 두번째 이미지테이블을 참조하면 됩니다.
   먼저 5개의 문서를 생각해야합니다.(문서이름은 그냥 그대로 하시면 됩니다.)

①db_mydb.php(이것은 기본)

  <?
  $host="localhost";
  $dbid="아이디";
  $dbpass="비번";
  $dbname="디비명";
  ?>

②select_01.php(출력문/보여주는 화면)==>테이블이미지 참조
   -db연결 : 문서file위에 db연결문울 넣는다는 뜻(이하 마찬가지)
   -select : select문이 들어간다는 뜻(이하 마찬가지)
   -while+array : array함수가 들어가는 데 ==>while로 돌린다는 뜻(이것은 입력을 여러개 하여 출력을 하면 이해됨)
   -문서내용

<?
//(*****여기부터 copy하여 문장 위에)
// 데이타베이스정보
include "db_mydb.php";
// 데이타베이스 연결
function my_connect($host,$id,$pass,$db)
{$connect=mysql_connect($host,$id,$pass);
  mysql_select_db($db);
  return $connect;
}
// MySQL 연결
$connect=my_connect($host,$dbid,$dbpass,$dbname);
//(*****여기까지 copy끝)


$zero01 = mysql_query("select no,id,name,cont01 from p_chobo");

echo("
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<HTML>
<HEAD>
<TITLE> php_왕초보쿄실 </TITLE>
<META NAME='Generator' CONTENT='EditPlus'>
<META NAME='Author' CONTENT=''>
<META NAME='Keywords' CONTENT=''>
<META NAME='Description' CONTENT=''>

<script language='javascript'>
<!--
function ch(no) {
url='insert_01.php?no='+no;
CheckWin=window.open(url, 'notice', 'left=210, top=100, location=no, directories=no, resizable=no, status=no, toolbar=no, menubar=no, width=500, height=150, scrollbars=auto')
}
-->
        </script>

</HEAD>

<BODY leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
☎PHP왕초보교실(예:한줄입력하기)
<table border='1' cellspacing='0' cellpadding='0' width='500'>
<TR>
        <TD width='80' align=center>작성자</TD>
        <TD width='80' align=center>보고상사</TD>
        <TD width='' align=center>보고내용</TD>
        <TD width='40' align=center>비고1</TD>
        <TD width='40' align=center>비고2</TD>
</TR>
");

while ($current_row = mysql_fetch_row($zero01))
{
$no=$current_row[0];$id=$current_row[1];$name=$current_row[2];$cont01=$current_row[3];

echo("
<TR>
        <TD> $id</TD>
        <TD> $name</TD>
        <TD> $cont01</TD>
        <TD> <a href=javascript:ch('$no'+ ');>수정</a></TD>
        <TD><a href=delete_01.php?no=$no>삭제</a></TD>
</TR>
");

}

echo("

</TABLE>
<a href=javascript:ch();>글쓰기</a>
</BODY>
</HTML>

");
?>

③insert_01.php(입력화면/글쓰는 화면-수정도 마찬가지)
   -db연결 : db연결문을 넣고
   -select+where : 이것은 처음 입력시는 무관하나, 수정할 때 써먹기 위해 뒤에 where no='$no' 와 함께 사용.
   -array : 출력문(select_01.php)과 where이 필요 없습니다.
   -form : 입력문이므로 꼭 필요합니다./처음 이미지테이블에 보면 다른 문서에는 없죠..다른 곳에는 필요 없습니다.
   -문서내용

<?
//(*****여기부터 copy하여 문장 위에)
// 데이타베이스정보
include "db_mydb.php";
// 데이타베이스 연결
function my_connect($host,$id,$pass,$db)
{$connect=mysql_connect($host,$id,$pass);
  mysql_select_db($db);
  return $connect;
}
// MySQL 연결
$connect=my_connect($host,$dbid,$dbpass,$dbname);
//(*****여기까지 copy끝)

$zero_02 =mysql_query("select no,id,name,cont01 from p_chobo where no='$no'");
$current_row = mysql_fetch_row($zero_02);
$no=$current_row[0];$id=$current_row[1];$name=$current_row[2];$cont01=$current_row[3];

echo("

<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//EN'>
<HTML>
<HEAD>
<TITLE> php_왕초보쿄실 </TITLE>
<META NAME='Generator' CONTENT='EditPlus'>
<META NAME='Author' CONTENT=''>
<META NAME='Keywords' CONTENT=''>
<META NAME='Description' CONTENT=''>

</HEAD>

<BODY leftmargin='0' topmargin='0' marginwidth='0' marginheight='0'>
☎PHP왕초보교실(예:한줄입력하기)
<form name=forms method=post action=update_01.php>
<input type=hidden name=no value=$no>
<table border='1' cellspacing='0' cellpadding='0' width='500'>
<TR>
        <TD width='80' align=center>작성자</TD>
        <TD width='80' align=center>보고상사</TD>
        <TD width='220' align=center>보고내용</TD>
        <TD width='60' align=center>비고1</TD>
        <TD width='60' align=center>비고2</TD>
</TR>
<TR>
        <TD><input size=10 type=text name=id value=$id></TD>
        <TD><input size=10 type=text name=name value=$name></TD>
        <TD><input size=30 type=text name=cont01 value=$cont01></TD>
        <TD> </TD>
        <TD> </TD>
</TR>

</TABLE>
<input type=submit value=확인>
</form>
</BODY>
</HTML>

");
?>

④update_01.php(insrt_01.php에서 글을 쓰면 이 데이타를 db에 쑤쎠 넣는 문서)..표현이 그렇죠./이해가 되실런지.
   -db연결 : db연결문을 넣고
   -insert : 처음에는 데이타가 없으므로 고유no가 없습니다. 그래서 if(!no) : no가 없으면, 즉 첫 데이타일 때
   -update+where : 데이타 수정시, 즉 데이타가 있는 것은 no가 있으므로 if(no) : 기존 있는 데이타이면 where no='$no' 을 붙여서 같은 no, 즉 같은 줄에 데이타를 update합니다.
   -문서내용

<?
//(*****여기부터 copy하여 문장 위에)
// 데이타베이스정보
include "db_mydb.php";
// 데이타베이스 연결
function my_connect($host,$id,$pass,$db)
{$connect=mysql_connect($host,$id,$pass);
  mysql_select_db($db);
  return $connect;
}
// MySQL 연결
$connect=my_connect($host,$dbid,$dbpass,$dbname);
//(*****여기까지 copy끝)

if(!$no){
$zero_03 = mysql_query("insert into p_chobo( no,id,name,cont01)values('$no','$id','$name','$cont01')");
}

if($no){
$zero_03 =mysql_query("update p_chobo set no='+ '$no',id='$id',name='$name',cont01='$cont01' where no='$no'");
}

$zero_04="select_01.php";

echo("
<html>
        <head>
<script language='javascript'>
<!--
function refresh(url)
{ //  alert(' 등록이 완료 되었습니다.');
opener.location.replace(url);
self.close();

}
//-->
</script>
</head>
<body onLoad=refresh('$zero_04')>
        </body>
        </html>
");

?>

⑤delete_01.php(삭제화면)
   -db연결 : db연결문 넣고
   -delete+where : 삭제할 때 어느 것(=no)인지를 알아야 하므로, where no='$no'+ ' 즉 해당하는 no를 찾아서 지우면 되겠죠.
   -문서내용

<?
//(*****여기부터 copy하여 문장 위에)
// 데이타베이스정보
include "db_mydb.php";
// 데이타베이스 연결
function my_connect($host,$id,$pass,$db)
{$connect=mysql_connect($host,$id,$pass);
  mysql_select_db($db);
  return $connect;
}
// MySQL 연결
$connect=my_connect($host,$dbid,$dbpass,$dbname);
//(*****여기까지 copy끝)


$zero_05 =mysql_query("delete from p_chobo where no=$no");

$zero_06="select_01.php";

echo("
<html>
        <head>
<script language='javascript'>
<!--
function refresh(url)
{ //  alert(' 등록이 완료 되었습니다.');
location.replace(url);


}
//-->
</script>
</head>
<body onLoad=refresh('$zero_06')>
        </body>
        </html>

");
?>

***이상입니다. 중요한 것은 where no='$no' 이 있는 구문은 필히 데이타손상되므로, 꼭 where no='$no'을 넣어서 데이타가 손상되지 않도록 해야됩니다.
***초보자가 올린거라 특별한 수식(스타일시트=>잘 모름)이 없고, 막 풀어 쓴겁니다.....
***자바스크립트는 글쓰기화면이  팝업창으로 나와야 하기때문에 쓴 것입니다.
***쿼리문 및 array함수관계만 보시고 다른 내용은 특별한 것이 없습니다.
***나머지는 copy해서 가공해서 쓰면 됩니다.