웹마스터 팁
page_full_width">
TheMics의 예제와 함께하는 PHP기초(上)
2002.03.14 19:32
http://nzeo.com/bbs/zboard.php?id=p_study&page=1&no=374&_____________설명:中편입니다...다 읽은 후에 클릭하세여!오랜만에 글을 올립니다..그동안 게을러져서;;...(잘 아네;;)
이번에 올릴 거는 사이트 내에서의 검색(DB 사용)소스를 가지고 PHP의 가초를 학습하는 겁니다. 앞으로도 예제를 가지고 간단한 기본문법과 DB사용, 파일 다루기를 배울 수 있는 자료를 올리겠습니다.(갑자기 떠오르는 <作心三日>;;)
먼저 풀 소스부터 봅시다.
<?
global $dbid, $dbpw, $dbname
$dbid = "디비 아디";
$dbpw="비번";
$dbname = "디비 이름";
function mics_msg($mics_msg_message) {
//에러메시지
echo("<script>window.alert('$mics_msg_messagennjukiyo.net');history.back();</script>");
exit;
}
function mics_dbconn() {
/* 디비에
접속
합니다~
*/
global $connect;
if(!$connect) {
$connect = mysql_connect("localhost",$dbid,$dbpw) or mics_msg("MySQL 접속 실패");
@mysql_select_db($dbname,$connect);
}
}
if(!$keyword) echo("검색할 자료를 입력해주십시오 : <form name='find' method='get' action='$PHP_SELF'><input type='text' name='keyword' size='20' maxlenght='20'> <input type='submit'+ ' value=' -> '><br> - 와일드 카드 검색: %와 _를 사용할 수 있습니다.(% : 모든 문자열, _ : 1개의 문자)</form><a href='http://jukiyo.net/sitemap.php'>사이트맵</a></center>");
elseif(eregi("GO ",$keyword)) {
eregi_replace("GO ","",$keyword);
echo "<meta http-equiv='refresh' content='0;url=go.php?keyword=${keyword}'>";
} else {
$keyword = strtolower($keyword);
mics_dbconn();
$result = mysql_query("select * from mics_find where keyword like '%$keyword%'");
if(!mysql_num_rows($result)) {
echo("키워드 ${keyword}에 대한 자료가 없습니다. 검색할 자료를 입력해주십시오 : <form name='find' method='get' action='$PHP_SELF'><input type='text' name='keyword' size='20' maxlenght='20'> <input type='submit' value=' -> '><br> - 와일드 카드 검색: %와 _를 사용할 수 있습니다.(% : 모든 문자열, _ : 1개의 문자)</form><a href='http://jukiyo.net/sitemap.php'>사이트맵</a>");
} else {
$total = mysql_num_rows($result);
echo("키워드 ${keyword}에 대한 자료가 ${total}개 검색되었습니다.<p> <p>");
for($i = 0;$i < $total;$i++) {
$vno = $i + 1;
$keyword = mysql_result($result,$i,1);
$title = mysql_result($result,$i,2);
$url = mysql_result($result,$i,3);
echo("<b> [$vno] <a href='$url'>$title</a></b><br> 키워드: $keyword<br>");
}
echo("<p><form name='find' method='get' action='$PHP_SELF'>다른 자료 검색: <input type='text' name='keyword' size='20' maxlenght='20'> <input type='submit' value=' -> '></form><p><a href='http://jukiyo.net/sitemap.php'>사이트맵</a>");
}
}
?>
*어떤"분"(;;)이 제 PHP코딩을 가지고 의아해하시더군여..코딩속도를 단축시키는 문법(한줄 if문이나 나만 쓰는 echo(" ") 따위..
저는 이런 신념(?)을 가지고 있습니다. 소스는 소스 자체로의 아름다움을 가진다!(ㅡㅡ;;말은 잘해요)
그래서 저는 모든 들여쓰기(중괄호)앞에는 탭을, echo문에도 echo("$#R%Y3");라는 정형을 고집합니다..
여기에는 이런 방법도 있다는 걸 알려드리기 위해 정형을 무시하기도 했습니다..양해 바랍니다;;
자, 이제 소스를 한줄씩 살펴보며 배워봅시다.
<?
global $dbid, $dbpw, $dbname
▷PHP에서 변수는 앞에 $ 를 붙여 나타냅니다. PHP에서는 따로 면수을 선언해 줄 필요가 없습니다.
단, global 키워드로 변수를 선언하면 함수 내, 객체 내 어디서든 동일한 값으로 사용할 수 있습니다.
PHP의 변수는 정수형, 실수형, 문자형, 배열형, 객체형이 있습니다. 차근차근 보면서 배워나갑시다.
$dbid = "디비 아디";
$dbpw="비번";
$dbname = "디비 이름";
▷이것은 변수의 값을 설정해주는 것입니다. "="는 연산자입니다. 연산자에 대한 설명은
http://nzeo.com/bbs/zboard.php?id=p_study&no=158 에서 보실 수 있습니다.
▷또한 모든 구문 끝에는 종결문자 ; (세미콜론)를 붙여야 합니다. 그렇지 않으면 입력 에러가 납니다.
하지만, 명령문처럼 중괄호로 끝나는 구절에는 붙이면 에러가 납니다;;
▷따옴표 속은 인자로, 각종 정보를 나타냅니다.
function mics_msg($mics_msg_message) {
▷매우 중요한 부분입니다. 이것은 함수를 선언하는 것입니다.
misc_msg 부분은 함수의 이름입니다. 앞으로 이 파일 내에서 이 함수를 호출할 수 있습니다.
변수는 함수의 인자입니다. 이 인자는 global로 선언되지 않는 한 함수 내에서만 쓰여집니다.
함수 중괄호 사이에 써있는 것은 오직 함수를 선언할 때만 출력됩니다. 어떤 수를 써도 직접 나오지 않습니다.
//에러메시지
▷이것은 주석문입니다. 아무런 뜻도 가지지 못하고, 다만 책갈피 따위의 기능으로 알아보기 쉽도록 합니다.
PHP에서 주석문은 앞에 "//"를 붙여서 나타냅니다. #도 같은 역할을 합니다.
echo("<script>window.alert('$mics_msg_messagennjukiyo.net');history.back();</script>");
▷PHP에서 가장 많이 쓰이는 함수를 꼽으라면 echo문일 것입니다. 이 함수는 HTML을 출력해줍니다.
똑같은 용도로 print문이 있는데, 이 문은 여러 줄을 한번에 나타내지 못해 잘 쓰이지 않습니다.
exit;
▷PHP를 끝내버리고 이하의 내용을 해석하지 않습니다.
}
▷여기까지가 함수 선언입니다. 중괄호를 닫습니다.
function mics_dbconn() {
▷또다른 함수를 선언했습니다. 이와같이 많은 함수를 선언한 파일을 library(도서관)파일이라고 하며, 각종 다른 문서에서
인클루드하여 사용합니다. 제로보드의 lib.php를 보시면 이해가 쉽게 가실 겁니다.
▷인클루드란 무엇일까요? 자기 자신을 다른 파일로 대체하는 것입니다. 인클루드된 파일의 모든 내용을 자신처럼 사용합니다.
인클루드하는 법은 include("인클루드 파일 위치");입니다.
인클루드에 스이는 경로 이야기는 다른 분들의 좋은 강좌를 참고해 보세여;;
/* 디비에
접속
합니다~
*/
▷PHP에서의 주석은 이렇게도 쓰입니다. 여러줄 주석문이라고 합니다. "/*"으로 열려서 "*/"르로 닫을 떄까지의 모든 내용을 주석처리합니다.
global $connect;
▷$connect변수는 global로 선언하였으니 함수 밖에서도 쓰이게 됩니다.
if(!$connect) {
▷또 중요한 게 나왔습니다. if문입니다. if문은 안의 내용이 참이면 그 ㅇ이하 괄호의 내용을 실행하고, 거짓이면 그냥 넘어갑니다.
여러 조건 중 하나만 만족하면 된다면 조건 사이에 or 또는 ||를, 모두 만족해야 한다면 and 또는 &&를 사용해 연결합니다. or이나 and를 쓰기를 권장합니다.
http://nzeo.com/bbs/zboard.php?id=p_study&no=158 를 참조하세여..
$connect = mysql_connect("localhost",$dbid,$dbpw) or mics_msg("MySQL 접속 실패");
▷드디어 DB문이 나왔습니다. mysql_connect는 MySQL 서버에 섭속합니다. 성공하면 1을, 실패하면 0을 출력합니다. 이것을 $connect에 저장합니다.
인자는 "서버 위치","ID","비밀번호"입니다. 뒤의 or은 실패시 실행할 것입니다.
▷PHP에서 1은 true(참), 0은 false(거짓)을 나타내며, 변수가 0이면 존재하지 않는 것입니다. if문 사용시 주의하세요.
@mysql_select_db($dbname,$connect);
▷디비를 선택합니다. "디비이름","접속변수"입니다. 접속변수는 생략 가능합니다.
▷함수 앞의 @ 는 오류가 생기면 무시하라는 뜻입니다.
}
}
▷if문 닫고, 함수 닫습니다.
아휴..이것도 힘드네여..낼이나 모레(아무래도 모레가 될 듯)에 2편 올라갑니다~
이번에 올릴 거는 사이트 내에서의 검색(DB 사용)소스를 가지고 PHP의 가초를 학습하는 겁니다. 앞으로도 예제를 가지고 간단한 기본문법과 DB사용, 파일 다루기를 배울 수 있는 자료를 올리겠습니다.(갑자기 떠오르는 <作心三日>;;)
먼저 풀 소스부터 봅시다.
<?
global $dbid, $dbpw, $dbname
$dbid = "디비 아디";
$dbpw="비번";
$dbname = "디비 이름";
function mics_msg($mics_msg_message) {
//에러메시지
echo("<script>window.alert('$mics_msg_messagennjukiyo.net');history.back();</script>");
exit;
}
function mics_dbconn() {
/* 디비에
접속
합니다~
*/
global $connect;
if(!$connect) {
$connect = mysql_connect("localhost",$dbid,$dbpw) or mics_msg("MySQL 접속 실패");
@mysql_select_db($dbname,$connect);
}
}
if(!$keyword) echo("검색할 자료를 입력해주십시오 : <form name='find' method='get' action='$PHP_SELF'><input type='text' name='keyword' size='20' maxlenght='20'> <input type='submit'+ ' value=' -> '><br> - 와일드 카드 검색: %와 _를 사용할 수 있습니다.(% : 모든 문자열, _ : 1개의 문자)</form><a href='http://jukiyo.net/sitemap.php'>사이트맵</a></center>");
elseif(eregi("GO ",$keyword)) {
eregi_replace("GO ","",$keyword);
echo "<meta http-equiv='refresh' content='0;url=go.php?keyword=${keyword}'>";
} else {
$keyword = strtolower($keyword);
mics_dbconn();
$result = mysql_query("select * from mics_find where keyword like '%$keyword%'");
if(!mysql_num_rows($result)) {
echo("키워드 ${keyword}에 대한 자료가 없습니다. 검색할 자료를 입력해주십시오 : <form name='find' method='get' action='$PHP_SELF'><input type='text' name='keyword' size='20' maxlenght='20'> <input type='submit' value=' -> '><br> - 와일드 카드 검색: %와 _를 사용할 수 있습니다.(% : 모든 문자열, _ : 1개의 문자)</form><a href='http://jukiyo.net/sitemap.php'>사이트맵</a>");
} else {
$total = mysql_num_rows($result);
echo("키워드 ${keyword}에 대한 자료가 ${total}개 검색되었습니다.<p> <p>");
for($i = 0;$i < $total;$i++) {
$vno = $i + 1;
$keyword = mysql_result($result,$i,1);
$title = mysql_result($result,$i,2);
$url = mysql_result($result,$i,3);
echo("<b> [$vno] <a href='$url'>$title</a></b><br> 키워드: $keyword<br>");
}
echo("<p><form name='find' method='get' action='$PHP_SELF'>다른 자료 검색: <input type='text' name='keyword' size='20' maxlenght='20'> <input type='submit' value=' -> '></form><p><a href='http://jukiyo.net/sitemap.php'>사이트맵</a>");
}
}
?>
*어떤"분"(;;)이 제 PHP코딩을 가지고 의아해하시더군여..코딩속도를 단축시키는 문법(한줄 if문이나 나만 쓰는 echo(" ") 따위..
저는 이런 신념(?)을 가지고 있습니다. 소스는 소스 자체로의 아름다움을 가진다!(ㅡㅡ;;말은 잘해요)
그래서 저는 모든 들여쓰기(중괄호)앞에는 탭을, echo문에도 echo("$#R%Y3");라는 정형을 고집합니다..
여기에는 이런 방법도 있다는 걸 알려드리기 위해 정형을 무시하기도 했습니다..양해 바랍니다;;
자, 이제 소스를 한줄씩 살펴보며 배워봅시다.
<?
global $dbid, $dbpw, $dbname
▷PHP에서 변수는 앞에 $ 를 붙여 나타냅니다. PHP에서는 따로 면수을 선언해 줄 필요가 없습니다.
단, global 키워드로 변수를 선언하면 함수 내, 객체 내 어디서든 동일한 값으로 사용할 수 있습니다.
PHP의 변수는 정수형, 실수형, 문자형, 배열형, 객체형이 있습니다. 차근차근 보면서 배워나갑시다.
$dbid = "디비 아디";
$dbpw="비번";
$dbname = "디비 이름";
▷이것은 변수의 값을 설정해주는 것입니다. "="는 연산자입니다. 연산자에 대한 설명은
http://nzeo.com/bbs/zboard.php?id=p_study&no=158 에서 보실 수 있습니다.
▷또한 모든 구문 끝에는 종결문자 ; (세미콜론)를 붙여야 합니다. 그렇지 않으면 입력 에러가 납니다.
하지만, 명령문처럼 중괄호로 끝나는 구절에는 붙이면 에러가 납니다;;
▷따옴표 속은 인자로, 각종 정보를 나타냅니다.
function mics_msg($mics_msg_message) {
▷매우 중요한 부분입니다. 이것은 함수를 선언하는 것입니다.
misc_msg 부분은 함수의 이름입니다. 앞으로 이 파일 내에서 이 함수를 호출할 수 있습니다.
변수는 함수의 인자입니다. 이 인자는 global로 선언되지 않는 한 함수 내에서만 쓰여집니다.
함수 중괄호 사이에 써있는 것은 오직 함수를 선언할 때만 출력됩니다. 어떤 수를 써도 직접 나오지 않습니다.
//에러메시지
▷이것은 주석문입니다. 아무런 뜻도 가지지 못하고, 다만 책갈피 따위의 기능으로 알아보기 쉽도록 합니다.
PHP에서 주석문은 앞에 "//"를 붙여서 나타냅니다. #도 같은 역할을 합니다.
echo("<script>window.alert('$mics_msg_messagennjukiyo.net');history.back();</script>");
▷PHP에서 가장 많이 쓰이는 함수를 꼽으라면 echo문일 것입니다. 이 함수는 HTML을 출력해줍니다.
똑같은 용도로 print문이 있는데, 이 문은 여러 줄을 한번에 나타내지 못해 잘 쓰이지 않습니다.
exit;
▷PHP를 끝내버리고 이하의 내용을 해석하지 않습니다.
}
▷여기까지가 함수 선언입니다. 중괄호를 닫습니다.
function mics_dbconn() {
▷또다른 함수를 선언했습니다. 이와같이 많은 함수를 선언한 파일을 library(도서관)파일이라고 하며, 각종 다른 문서에서
인클루드하여 사용합니다. 제로보드의 lib.php를 보시면 이해가 쉽게 가실 겁니다.
▷인클루드란 무엇일까요? 자기 자신을 다른 파일로 대체하는 것입니다. 인클루드된 파일의 모든 내용을 자신처럼 사용합니다.
인클루드하는 법은 include("인클루드 파일 위치");입니다.
인클루드에 스이는 경로 이야기는 다른 분들의 좋은 강좌를 참고해 보세여;;
/* 디비에
접속
합니다~
*/
▷PHP에서의 주석은 이렇게도 쓰입니다. 여러줄 주석문이라고 합니다. "/*"으로 열려서 "*/"르로 닫을 떄까지의 모든 내용을 주석처리합니다.
global $connect;
▷$connect변수는 global로 선언하였으니 함수 밖에서도 쓰이게 됩니다.
if(!$connect) {
▷또 중요한 게 나왔습니다. if문입니다. if문은 안의 내용이 참이면 그 ㅇ이하 괄호의 내용을 실행하고, 거짓이면 그냥 넘어갑니다.
여러 조건 중 하나만 만족하면 된다면 조건 사이에 or 또는 ||를, 모두 만족해야 한다면 and 또는 &&를 사용해 연결합니다. or이나 and를 쓰기를 권장합니다.
http://nzeo.com/bbs/zboard.php?id=p_study&no=158 를 참조하세여..
$connect = mysql_connect("localhost",$dbid,$dbpw) or mics_msg("MySQL 접속 실패");
▷드디어 DB문이 나왔습니다. mysql_connect는 MySQL 서버에 섭속합니다. 성공하면 1을, 실패하면 0을 출력합니다. 이것을 $connect에 저장합니다.
인자는 "서버 위치","ID","비밀번호"입니다. 뒤의 or은 실패시 실행할 것입니다.
▷PHP에서 1은 true(참), 0은 false(거짓)을 나타내며, 변수가 0이면 존재하지 않는 것입니다. if문 사용시 주의하세요.
@mysql_select_db($dbname,$connect);
▷디비를 선택합니다. "디비이름","접속변수"입니다. 접속변수는 생략 가능합니다.
▷함수 앞의 @ 는 오류가 생기면 무시하라는 뜻입니다.
}
}
▷if문 닫고, 함수 닫습니다.
아휴..이것도 힘드네여..낼이나 모레(아무래도 모레가 될 듯)에 2편 올라갑니다~
제목 | 글쓴이 | 날짜 |
---|---|---|
[추천 팁] 방문자의 os와 browser체크 함수.... [3] | navyism | 2002.03.18 |
echo 문 대신... [5] | TryZ | 2002.03.17 |
[씽크식 PHP] 초심자들이 많이 겪는 실수.. [7] | [ζ]씽크 | 2002.03.16 |
TheMics의 예제와 함께하는 PHP기초(上) [1] | TheMics | 2002.03.14 |
include를 이용한 다음넷 홈페이지 꾸미기2(그림 첨부)
[4]
![]() | ZipShin | 2002.03.12 |
include를 이용한 다음넷 홈페이지 꾸미기1 [10] | ZipShin | 2002.03.12 |
[추천 팁] index key 값을 갖는array에서 value에 의한 key값 반환 [1] | 차카게살자 | 2002.03.11 |
가변적 변수 할당하는 방법 (t1=1; t2=2; t=t.rand(1,2);) [1] | 차카게살자 | 2002.03.11 |
유용한 함수 - array_reverse | 리들 | 2002.03.10 |
php를 리눅스쉘상 에서도 사용하자? [5] | 실버 | 2002.03.10 |
반복문을 한번만 사용한 구구단 [2] | 페리스 | 2002.03.10 |
요일을 한글로 표시 [5] | 페리스 | 2002.03.10 |
2번째~~!! DATE값 받아놓기 &상대방 아이피 알아내기~ [7] | 실버 | 2002.03.07 |
많은것을 파일하나로 처리하잣!! [5] | 실버 | 2002.03.05 |
[Yuki-H.] 이미지 크기가 일정 픽셀 이상이면 축소하여... [8] | Yuki-H. | 2002.03.04 |
[OsE=] IF 대신... [6] | OsE= | 2002.03.02 |
[OsE=] 최단 거리... [6] | OsE= | 2002.03.02 |
[OsE=] 기초적인 정규표현식 [3] | OsE= | 2002.03.02 |
[OsE=] Session을 배워보자~ [#3] [1] | OsE= | 2002.03.02 |
[OsE=] Session을 배워보자~ [#2) | OsE= | 2002.03.02 |
글구 닉넴 바꾸고 웹강의 첫글이네여..