SQL 기초 학습 / SQL이란?

 

 

 

웹프로그래머가 알아야할 것들은?

 

프로그램의 공부는 정말 끝이 없는듯 합니다.

웹프로그램만 하더라도 공부해야 할 것들이 JSP, ASP, PHP, Database, Javascript, jQuery, SQL, CSS, HTML 등등 그 이외에도 더 많이 있지만 저렇게 많은 공부를 해야 인터넷이라는 공간에 집을 지을수 있습니다.

 

SQL 언어가 중요하고 필수적으로 알아야 하는 이유는 데이터베이스를 조작하고 엑세스할수 있기 때문입니다. 인터넷에 있는 모든 글은 데이터베이스에 저장되게 되는데 SQL 언어를 모르면 앙꼬없는 찐빵이겠죠. 

 

SQL 은 아래 내용처럼 많은 것들을 할 수 있습니다.

- SQL은 데이터베이스에 대해 쿼리를 실행할 수 있습니다
- SQL은 데이터베이스에서 데이터를 검색 할 수 있습니다
- SQL은 데이터베이스에 레코드를 삽입 할 수 있습니다
- SQL은 데이터베이스의 레코드를 업데이트 할 수 있습니다
- SQL은 데이터베이스에서 레코드를 삭제할 수 있습니다
- SQL은 새 데이터베이스를 만들 수 있습니다
- SQL은 데이터베이스에 새 테이블을 만들 수 있습니다
- SQL은 데이터베이스의 저장 프로 시저를 만들 수 있습니다
- SQL은 데이터베이스에서 뷰를 만들 수 있습니다
- SQL 테이블, 프로 시저 및 뷰에 대한 권한을 설정할 수 있습니다

 

SQL 언어는 표준 언어이지만 데이터베이스 마다 각각 사용법이 조금씩 다릅니다. 그렇지만 표준을 준수하기 위해서 기본적인 명령어는 똑같이 사용됩니다. 예를들어서 SELECT, UPDATE, DELETE, INSERT, WHERE 처럼 말이죠.

 

PHP 포스팅을 하면서 SQL에 대해 조금 다루긴 했지만 이번 SQL 포스팅에선 좀더 구체적으로 SQL에 대해서 알아보기로 하겠습니다. 

우선 SQL 소개 부분이니 여기까지만 설명을 드리고 다음 포스팅에선 SQL Syntax 에 대해서 포스팅하겠습니다.

 

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

어디든지 여러분의 소스코드를 보기좋게 올리세요

Color Scripter로 Action Script, ASP, C, C#, CSS, HaXe, HTML, Java, JavaScript, JSP, Objective C, Perl, PHP, Python, Ruby, SQL, Swift, Visual Basic 등
 다양한 언어를 하이라이트하여 소스코드를 더 보기좋게 블로그등에 업로드 할 수 있습니다.

Color Scripter는 네이버 블로그등 <script> 태그가 지원되지 않아 Syntax HighLighter를 사용할 수 없는 곳에서도 사용할 수 있으며,
간단한 설정만으로 자신이 원하는 방식으로 소스코드를 하이라이팅 할 수 있습니다.

위치는  https://colorscripter.com/

 

디자인

보다 더 깔끔하게 코드를 볼 수 있게 디자인을 변경했습니다.
특히 HTML과 CSS가 더 다양한 색상을 지원하여 더 보기 좋게 하이라이트 됩니다.

 

 


<html>
    <head>
        <title>Untitled 1</title>
    </head>
    <body>
        <p align="center">
            Hello World!
        </p>
    </body>
</html>

 


package{
    public class Class1{
        public static void main(String arg[]) {
            System.out.println("Hello World!");
        }
    }
}

툴바

최대한 간단하면서 편리하게 제작했습니다.
키보드나 마우스 모두 어떤 것을 사용하더라도 편하며 검색기능을 이용하면 더욱 빠르게 언어를 선택할 수 있습니다.

 

스타일패키지를 선택하기 전에 대략적인 색상을 파악할 수도 있습니다.

  확장 스토어

이제 확장스토어에서 언어팩이나 스타일패키지를 적용하거나 제작 및 업로드 할 수 있습니다.
확장스토어에서 플러그인 적용 후 colorscripter.com 사이트를 새로고침 하면 바로 사용 가능합니다

 

               

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

ATOM 설치

 

코딩을 할 수 있는 에디터를 설치하겠습니다.

저는 에디터로 EditPlus에디터를 사용하고 있습니다.

 

우선 ATOM을 설치하겠습니다.

 

ATOM 다운로드를 위해 여기를 클릭하세요. [여기]

 

여기를 누르면 다음과 같이 아톰 홈페이지가 나타납니다.

 

 

화면에 보이는 Download Windows Installer을 눌러주세요.

 

 

다운로드 폴더에 가서 AtomSetup파일을 실행하면 설치가 끝난후 다음과 같이 에디터가 나타납니다.

 

 

이제 아톰에디터에 Hello World를 작성하고 이것을 웹페이지에 띄워보겠습니다.

 

Hello World를 작성해주세요.

이제 이 파일을 바탕화면에 web이라는 폴더를 만든 후 helloworld.html 파일명으로 저장해주세요.

 

이제 저장한 helloworld.html를 더블클릭하여 실행해 주세요

 

이제 HTML부터 시작해서 순차적으로 CSS, JavaScript, jQuery, MysQL, PHP를 배워봅시다.

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

27일차 수업( JSP servlet 및 환경설치 )

 

CGI ( common Gateway Interface )
==> 동적으로 실행되어 클라이언트의 다양한 요구사항을 만족 시킬수 있는 개념

==> CGI를 구체화한 프로그램 언어 : JSP, Servlet, PHP, ASP

 

<JSP/Servlet 은 자바 기반>
따라서 JVM이 필요하다. JVM포함한 특별한 컨테이너(container)가 필요하다.

가장 많이 사용하는 tomcat 컨테이너 사용

 

* 환경

클라이언트              서버
: 웹브라우저            : 웹서버 ( 아파치, IIS )
                               ==> HTML를 서비스

 

* 환경2

클라이언트              서버
: 웹브라우저            : 웹서버 ( 아파치, IIS )
                             : 웹 컨테이너(tomcat)
                             ==> 웹 컨테이너가 웹 서버기능을 가지고 있기때문에

 

 

환경설정

가. JDK 설치
나. Eclipse설치 

다. Tomcat 설치
: http://jakarta.apache.org -> zip 파일로된 tomcat 7 파일을 받는다.

 

C 밑에 아무 파일(영어이름)이나 만들고 그안에 넣고 압축을풀면 준비 끝!

그리고 그안에 압축을 풀어준다.

 

서블릿(servlet)

: *.java 

작성방법

가. extends HttpServlet 상속받아야함
나. main 메소드 대신에 doGet(기본) 또는 doPost 메소드를 구현해야 된다.

 

ex) com.test.HelloServlet
클라이언트의 요청방법
http://localhost:8090/HelloTest/servlet/com.test.HelloServlet
--> 길고 보안에 취약함
다. 실행결과는 항상 html로 작성한다.
라. html를 클라이언트로 응답한다.

 

 

서블릿의 매핑방법 2가지!

 

a. web.xml
==> 배치지시자( Deployment Descriptor : DD )
 웹 어플리케이션의 환경정보를 저장한다.
==> xml로 구성되어 있다.
==> Servlet2.5, jsp2.1 (버전에서 주로 사용하던 방법)

 

사용방법>>>>

WEB-INF 에서 web.xml 소스에 아래와 같이 수정

 

<servrlet>

<servlet-name>서블릿별명</servlet-name>

<servlet-class>패키지를 포함한 서블릿명</servlet-class>

</servrlet>

<servlet-mapping>

<servlet-name>서블릿별명</servlet-name>

<url-pattern>매핑명</url-pattern>

</servlet-mapping>

 

b. annotation
==> web.xml에 설정 대신에 사용하는 방법
 자바코드내에서 설정하는 방법이다.
 Servlet3.0, jsp2.2 (Tomcat 7 에서만 동작) 보전에 사용 가능한 방법

 

사용방법 >>>>

@WebServlet("/Employee")

 

===부충수업 ========

 

  Servlet/JSP 과정 정리

1. 동작환경?

 : Client/Server 환경

클라이언트 A      가. 요청  서버
: 웹브라우저 ------------------->   나. 요청처리
     다. 결과(html형식)
            <-------------------
  라. 응답
서버는 html을 만드는거고, 클라이언트가 실행한다.

* 클라이언트에서 실행되는 프로그램 언어(컴포넌트)종류?
- html
- 자바스크립트

 

* 서버에서 실행되는 웹 컴포넌트 종류 3가지?

가. 정적 웹 컴포넌트
- html
==> 한번 작성하면 결과가 항상 동일하다.
    현재시간을 얻을 수가 없다.
 따라서 다양한 클라이언트 요구를 만족시킬 수 없다.

나. 동적 웹 컴포넌트
- JSP
- Servlet
==> 프로그램으로 실행된다.
   따라서 실행결과가 동적으로 다양하다.
클라이언트의 다양한 요규를 처리할 수 있다.

* CGI ( common Gateway Interface )
==> 동적으로 실행되어 클라이언트의 다양한 요구사항을 만족 시킬수 있는 개념

==> CGI를 구체화한 프로그램 언어 : JSP, Servlet, PHP, ASP

- JSP/Servlet 은 자바 기반이다.
따라서 JVM이 필요하다. JVM포함한 특별한 컨테이너(container)가 필요하다. 가장 많이 사용하는 tomcat 컨테이너 사용.

* 환경

클라이언트     서버
: 웹브라우저    : 웹서버 ( 아파치, IIS )
     ==> HTML를 서비스

* 환경2

클라이언트     서버
: 웹브라우저    : 웹서버 ( 아파치, IIS )
     : 웹 컨테이너(tomcat)
     ==> 웹 컨테이너가 웹 서버기능을 가지고 있기       때문에 ==> JSP, servlet 실행

 

2. 웹 컨테이너
: tomcat
: http://jakarta.apache.org 에서 무료 다운.

3. 환경설정
가. JDK 설치
나. Eclipse설치


다. Tomcat 설치
: http://jakarta.apache.org

*자바 개발 3가지 플랫폼
- Java SE ( Java Standard Edition )
==> 일반 PC에서 실행된는 프로그램 개발용.
==> 여지껏 우리가 배웠던 환경
==> 필요환경
 :: JDK 만 설치하면 된다.
 :: eclipse

- Java Enterprise Edition)
==> Enterprise 환경에서 실행되는 프로그램 개발용.
==> 필요 환경
:: JDK, Tomcat 설치하면 된다.
:: eclipse
:: 클라이언트는 웹 브라우저 필요.


- Java ME( Java Micro Edition )
==> 핸드폰, PDA같은 소규모 장치에서 실행되는 프로그램 개발용.
: 웹브라우저 ------------------->

     <-------------------

==> 이클립스와 톰켓 연동
가. Java EE 퍼스펙티브 선택

4. web application
: context 라고 한다.
: 물리적인 위치는 C:\tomcat7\apache-tomcat-7.0.42\webapps 폴더내에 있는 각각의 폴더를 지칭힌다.
ex) ROOT 컨텍스트 ( ROOT 웹 어플리케이션)이라고 한다.
: 용도?
==> 클라이언트가 요청했을 때, 컨테이너가 요청한 웹 컴포넌트를 찾는 디렉토리이다.

: 클라이언트 요청 처리방법?
http://서버아이피:포트번호/컨텍스트명/자원 <-- webapps에 있는 파일명을 컨텍스트라함
==> ROOT 컨텍스트는 생략한다.

ex) http://localhost:8090/examples/index.html
 http://localhost:8090/examples/test.jsp
http://localhost:8090/examples/servlet/com.test.HelloServelt

==> JSP와 HTML은 요청방법은 같다.
 서블릿은
http://서버아이피:포트번호/컨텍스트명/servlet/패키지명 포함한 클래스

: 컨텍스트 구조?
==> webapps 폴더에 저장되며 반드시 다음 구조를 갖는다.

webapps - 컨텍스트명 - WEB-INF  - classes
           - lib
    - web.xml

반드시 이 구조를 가져야한다. 이 구조가 아니면 컨테이너가 찾지 못한다.

5. 사용자 정의 context(web Application ) 생성

가. Eclipse에서 File > New > Dynamic Web Project 선택

6. 3가지 컴포넌트
가. html
==> www.w3schools.com 참조

나. JSP

다. 서블릿

7. 서블릿 ( servlet )

: *.java
: 작성방법

가. extends HttpServlet 상속받아야함
나. main 메소드 대신에 doGet(기본) 또는 doPost 메소드를 구현해야 된다.

 ex) com.test.HelloServlet
클라이언트의 요청방법
http://localhost:8090/HelloTest/servlet/com.test.HelloServlet
--> 길고 보안에 취약함
다. 실행결과는 항상 html로 작성한다.
라. html를 클라이언트로 응답한다.

* 아키텍쳐
 가. 요청     서버
http://localhost:8090/HelloTest/servlet/com.test.HelloServlet
브라우저 -----------------------------> com.test.Helloservlet
      나. 실행(프로그램)
      다. 결과(html형식) 
 <-----------------------------
 라. 응답

마. html을 보여준다.
* 서블릿 맵핑( Servlet mapping) --> 취약한 보안을 방지하는 방법
- 요청값을 짧게 줄이는 작업이다.
 이유는 요청값이 길고 보안에 취약하기 때문이다.
http://localhost:8090/HelloTest/servlet/com.test.HelloServlet
==?http://localhost:8090/HelloTest/servlet/xxx <- 의미없는 이름으로 지정

==> 서블릿 맵핑 정보 저장하는 방법 2가지

a. web.xml
==> 배치지시자( Deployment Descriptor : DD )
 웹 어플리케이션의 환경정보를 저장한다.
==> xml로 구성되어 있다.
==> Servlet2.5, jsp2.1 (버전에서 주로 사용하던 방법)

b. annotation
==> web.xml에 설정 대신에 사용하는 방법
 자바코드내에서 설정하는 방법이다.
 Servlet3.0, jsp2.2 (Tomcat 7 에서만 동작) 보전에 사용 가능한 방법

8. XML
 : eXtensible Markup Language ( XML )
=> 확장 가능한 마크업 언어
: 특징
- html 처럼 모두 태그(엘리먼트:element, 노드: node)로 구성됨.
시작태그
몸체
끝태그

예> <html> ==> 시작태그
    ==> 몸체 
    </html> ==> 끝태그

* 몸체가 없는 태그 ( empty 태그 )
예> <person> 홍길동 </person>
    <person></person> --> 빈태그
                      --> <person />
- 자바처럼 대소문자를 구별한다.
- html은 고정된 태그명이 있는데, xml은 마음대로 태그명을 추가할 수 있다. ( 가장 큰 특징 )
- xml을 작성하는 이유?
  ==> 데이터 저장
  예>
     <person>
 <name>홍길동</name>
  <age>29</age>
 <address>서울</address>
     </person>

  홍길동,20,서울

A회사  B회사
:win  :unix
:hwp         :word

    XML
- xml은 플랫폼(운영체제,프로그램 언어...)에 독립적이다.
==> xml 태그정보와 관련된 약속이 필요하다.
 ( 태그명, 갯수, 순서, 속성명, 속성값종류,...)
==> 2가지 약속문서로 작성가능하다.
- DTD (Data Type Definition)
-> *.dtd
- schema
-> *.xsd
======> xml 파일에서 dtd, xsd 의 문법을 따르는지 지정한다.

- xml은 태그가 계층구조로 되어 있다.

예>
     <person>
 <name>홍길동</name>
  <age>29</age>
 <address>서울</address>
     </person>

       person  => 루트태그(root 태그) (단 하나만 가질수있다.)
   |
   name  age   address
    |     |       |
  홍길동 20     서울

- 속성을 가질수 있다. 시작태그에 지정
  (속성명 = "값" , 속성명 = "값")
  반드시 속성값에는 " 또는 ' 를 사용해야 된다.
예> <person name="홍길동" age='20' />


=> 위 문법을 따르는 xml 파일을 well-formed 문서라고 한다.

=> dtd, schema 약속을 따르는 xml 파일을 valid 문서라고 한다.

가. 태그명 지정
< !ELEMENT 태그명 ( 자식태그, 자식태그2, ...) >
C:\tomcat7\apache-tomcat-7.0.42\lib 이 경로로 들어가서
servlet-api.jar 에디터 플러스로 연다.
//53번째 줄의 내용이다. (dtd파일)
<!ELEMENT web-app (icon?, display-name?, description?, distributable?,
context-param*, filter*, filter-mapping*, listener*, servlet*,
servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?,
error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*,
login-config?, security-role*, env-entry*, ejb-ref*,  ejb-local-ref*)>

나. 개수
? : 0이상
* : 1이상
 : 반드시 1

다. 속성명 지정
<!ATTLIST 속성명 타입 #IMPLIED|#REQUIRED>

: 타입은 CDATA, ID 등이 올수 있다.
: #IMPLIED은 옵션, 즉 송성을 지정안할 수 있다.
 #REQUIRED은 필수, 즉 속성이 필수사항이다.

9. web.xml
<welcome-file-list>를 에디터에서 찾는다.
<!ELEMENT welcome-file-list (welcome-file+)>
가. welcom-file-list 의 <welcom-file>
==> 맨 처음 보여주는 화면의 파일명 지정.
지정하면 브라우저에서 URL에 명시적으로 지정하지 않아도 자동으로 찾아서 보여준다.

자~~
웹.xml에 있는걸 보면
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
 
 <description>sss</description>
 
  <display-name>Test001</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>abc.html</welcome-file>
  </welcome-file-list>
</web-app>
이것은 순서대로 파일을 찾는다. 찾을 때
구지
http://localhost:8090/Test001/abc.html 을 써주지 않아도 된다.
http://localhost:8090/Test001/ 만 써도 가능하다.

xml파일이란 ~ 묶어주는 역할을 하는 것 같다.
최고 큰 녀석은 conf에  xml이다.

    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
--> 여기에 지정되있으니~톰켓 메인화면이 보이는 것이다.

10. 서블릿 맵핑 설정 방법 ( 크게 두가지고 있고 둘다 먹힌다. 확인은 콘솔에서)

가. annotation 방법
 @WebServlet("/zzz") //맵핑하는것서블릿3.0에서사용하는것!!
public class HelloServlet extends HttpServlet

나. web.xml 설정 방법
<servlet>
 <servlet-name>kkkk</servlet-name>
 <servlet-class>com.test.HelloServlet</servlet-class>
 
 </servlet>
 
 <servlet-mapping>
 
 <servlet-name>kkkk</servlet-name>
 <url-pattern>/abc</url-pattern>
 
 </servlet-mapping>


11. 응답처리
  가. 요청
웹 브라우저 ------------------> 서블릿
     나. 실행
 <---------------------
 다. 응답

* 서블릿 작성 클래스 3개.
가. HttpServlet
==> 일반클래스를 서블릿으로 만들기 위해서
==> 일반클래스는 브라우저에서 요청해도 처리가 안됨.
 서블릿이어야 브라우저에서 요청할 수 있다.
==> 서블릿이 요청을 받으면 서비스 메소드 실행된다.
   ( 서비스 메소드의 종류 : doGet, doPost )
 서비스 메소드는 반드시 2가지 인자를 갖는다.
HttpServletRequest request,
 HttpServletResponse response를 갖는다.

나. HttpServletRequest
==> 클라이언트가 서버로 요청할 때 관련있는 클래스.

다. HttpServletResponse
==> 서버가 클라이언트로 응답할 때 관련있는 클래스.

* 서블릿이 응답 시 2가지 작업

가. MIME 타입지정
==> 웹 브라우저에게 응답 데이터형식을 알려줄 때 사용한다.
 ex) html, text, img, ....
==> tomcat홈>conf>web.xml 참조

response.setContentType("text/html");

나. 자바 IO 얻기

//byte
 ServletOutputStream sos = response.getOutputStream();
//char
 PrintWriter out = response.getWriter();


다. html 형식으로 출력
out.print(값);

System.out.println("WorldServlet");
  
  //응답처리 + 한글지정
  //1. MIME 타입지정
  response.setContentType("text/html;charset=EUC-KR");
  
  // 2. IO 얻기
  //byte
  //ServletOutputStream sos = response.getOutputStream();
  //char
  PrintWriter xxx = response.getWriter();
  //3.출력
  xxx.print("hello World");
  xxx.print("안녕하세요");


12. 서블릿과 DB연동
웹 브라이저 ---------> 서블릿 -------> DAO ---------> 오라클

가. 드라이버 필요
 : 클래스패스에 추가

나. DAO, DTO 패턴

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 

 [PHP] MySQL DB 연결방법
 


PHP 와 MySQL DB의 조합은 ...거의 바늘과 실의 조합 과같을정도로 자주사용되는 구조이다.

 

DB를 연결하려면 아래와 같다.

 

<?

 ////데이터베이스 연결 계정 정의

 

 $db_hostname="localhost";     //서버명
 $db_username="";          //계정아이디
 $db_password="";       //계정 암호
 $dbname="";                 // 데이터베이스 이름
 //// 데이터베이스 연결 ////
 $conn=mysql_connect($db_hostname, $db_username, $db_password);
 mysql_select_db($db_username, $conn);

 

?>

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

(회원가입을 하시면 편리한 시간에 자세히 설명해드립니다)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 

회원가입 페이지를 만들고 그 회원가입 폼에 기입한정보를  mysql db에 입력되게끔 만들어 봅시다.

 

그럼 우선 메인 화면을 만들게요.

아래와 같이 입력해주세요

htdocs에 join1.php 파일로 저장해주세요.

 

 

 

그럼 우선 정보가 저장될 테이블을 만들어 봅시다.

 

database 는 join_db 로 합시다. 만들어요

table명은 account_info 로 합니다.

필드는 아이디 비밀번호 이름 주소 성별 나이 이메일 직업으로 합니다.

 

그럼 이제 작업을 시작 합시다.

 

우선 메인 페이지 입니다.

 

join1.php 로 htdocs에 저장해주세요. 한/영 변환이 귀찮아서 영어로 작성했고요, 틀린 문법이 와장창 일것입니다. 그냥 넘겨주세요^^

 

이 페이지는 절차 및 필드를 어떠한것들을 쓸건지 명시되어있습니다.

 

 

<html>

<head>

<title>[project]Membership register page </title>

</head>

<body>

<center>

<form name=f1 method=post action="join2.php">

<table border=1>

<tr>

<td><h3><b>project to make table on membership register</b></h3></td>

</tr>

<tr>

<td>procudure</td>

</tr>

<tr>

<td>1.making table </br> the fields are id,password,confirm_password,name,address,sex,age,e-mail</td>

</tr>

<tr>

<td>2.input member's information</td>

</tr>

<tr>

<td>3.saving informaton into DB</td>

</tr>

<tr>

<td>4.see list</td>

</tr>

</table>

<input type="submit" value="make table" />

</form>

</center>

</body>

</html>

 


 

위 파일을 실행하면 아래의 화면이 뜨게 되고요 submit를 누르면 join2.php파일이 작성되지 않아서 없는 페이지가 표시 됩니다.

 


 

그럼 이번엔 join2.php파일을 작성합니다.

 

이 파일의 역할은 우리가 만들려고하는 테이블을 찾은뒤 없다면 만들어주는 기능을 합니다.

이 소스는 제가 완벽하게 이해를 하지 못했습니다.

추가로 알게 되면 개정을 하겠습니다.

 

 

<?

 $connect = mysql_connect('localhost','root','123456');

 mysql_select_db('join_db',$connect);

 if($result == 1){

 $tb_name = mysql_list_tables("join_db");

 $tb_count = mysql_num_rows($tb_name);

 for($a=0; $a<$tb_count;$a++)

 if(mysql_tablename($tb_name,$a) == "account_info"){

 $flag = "ok";

 break;

 }}

 

 if($flag != "ok"){

  $sql = "create table account_info(

    id varchar(30),

    pwd varchar(20),

    pwd2 varchar(20),

    name varchar(10),

    addr varchar(80),

    sex varchar(3),

    age int(2),

    email varchar(20),

    primary key(id))";

   

  $reslut = mysql_query($sql, $connect) or die("table exists");

  }

 

  echo " it is successful to make table <br />";

  echo " please go to ";

  echo " <a href='join3.php'> sign up page<a/>";

  mysql_close($connect);

?>

 

 

소스 설명을 위해서 이미지 파일로 다시 한번 위의 파일을 아래에 첨부하겠습니다. (라인때문에)

 

 

 

 

$connect 는 mysql_connect()함수를 이용해서 접속 정보를 변수값으로 갖고 있고요.

mysql_select_db()함수를 통해서 데이터베이스를 선택하고 접속 변수를 2번째 인자로 넣습니다.

if($result == 1) 이거 뭔지 모르겠네요,, 아시는분 답변좀..

 

5번째 줄의 $tb_name = mysql_list_tables("join_db"); 이것은 join_db안에 있는 모든 테이블들을 보여주는 함수입니다. 그 값은 $tb_name에 저장이 됩니다.

 

6번째 줄의 $tb_count=mysql_num_rows($tb_name)은 5행의 변수 $tb_name가 가지고 있는 테이블에서 레코드 개수를 산출하는 함수 입니다. 이것은 tb_count에 저장됩니다.

 

 

7행의for문은6행에서 산출된 레코드의 개수만큼 반복 수행한다. 반복 수행의 조건은 8행의 if(mysql_tablename($tb_name,$a)=='account_info")에서 account_for 테이블을 만들때까지 수행한다.

테이블을 찾으면 mysql쿼리에 대한 성공의 의미로 출력되는 ok를 $flag=ok변수에 저장한 다음 10행의 break명령을 통해 반복문을 빠져나간다.

 

account_info테이블이 발견되지 않았다면 14행의 create table기능을 수행하고 테이블및 필드를 생성후 $result=mysql_query($sql,$connect)로 질의문을 수행한다.

 

만약 질의문을 수행하지 못할 경우가 생기게 되면 or die의 () 문을 수행하게 된다.

 

 

위의 소스를 수행하면

 


 

테이블이 있는경우에는

table exists 가 출력된다.

 

 

그 다음은 회원가입 양식이다.

 

이 파일은 join3.php로 저장한다.

 

<html>

<head>

<title>sign up page</title>

<form name=f2 method=post action="join4.php">

<h1>input your information</h1>

<table border=1>

<tr>

<td>ID</td>

<td><input type="text" size=30 name='id'></td>

</tr>

<tr>

<td>Password</td>

<td><input type="password" size=30 name='pwd'></td>

</tr>

<tr>

<td>Confirm Password</td>

<td><input type="password" size=30 name='pwd2'></td>

</tr>

<tr>

<td>name</td>

<td><input type="text" size=12 maxlength=10 name='name'></td>

</tr>

<tr>

<td>address</td>

<td><input type="text" size=40 name='addr'></td>

</tr>

<tr>

<td>sex</td>

<td><input type="text" size=6 maxlength=2 name='sex'></td>

</tr>

<tr>

<td>age</td>

<td><input type="text" size=6 maxlength=2 name='age'></td>

</tr>

<tr>

<td>e-mail</td>

<td><input type="text" size=30 name='email'></td>

</tr>

</table>

<input type=submit value="submit"><input type=reset value="rewrite">

</form>

</body>

</html>

 


 

필자는 table을 좋아하지 않지만 회원가입 양식이나 달력등은 테이블로 아직까지 많이들 쓴다.

 

실행을 하게 되면 아래의 회원가입 양식이 출력된다. 입력된 값은 임의로 입력하면 된다.


 

그럼 위에 submit버튼을 아직 누르면 안된다. 당연히 그 다음 페이지가 작성되어있지 않기 때문이다.

그 다음 할 일은바로 저렇게 우리가 적어놓은 자료들이 데이터베이스에 저장되는 일이다. ^^

그럼 저장해보자 위의 소스에서 보이듯이 post방식을 사용한다.

 

그러므로 변수들도 포스트를 사용!

 

 

<?

 $id=$_POST['id'];

 $passwrd=$_POST['pwd'];

 $password2=$_POST['pwd2'];

 $name=$_POST['name'];

 $address=$_POST['addr'];

 $sex=$_POST['sex'];

 $age=$_POST['age'];

 $email=$_POST['email'];

 

 $connect = mysql_connect('localhost','root','123456');

 mysql_select_db('join_db',$connect);

 

 $sql = "insert into account_info (id, pwd, pwd2, name, addr, sex, age, email)";

 $sql = $sql. "values('$id','$password','$password2','$name','$address','$sex','$age','$email')";

 mysql_query($sql, $connect);

 mysql_close($connect);

 echo "register completed <br />";

 

 echo "<a href='join3.php'>rewrite</a>";

 echo "<a href='join5.php'>view result</a>";

?>

 

  

위의소스르 join4.php로 저장하고 join3.php가 뜬 웹브라우저 창에서 sumit버튼을 눌러주면 mysql 의 join_db 데이터베이스 안의 테이블 account_info에 저장되게 된다.

 

 

그럼join3으로 가서 또 한번 임의로 자료들을 적어서 보내보자

 

 

 

 

db는 

 

이제 게시판 프로그래밍 방법등을 익힌다면 회원제로 운영되는 사이트 완성이 가능할것이다.

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

(회원가입을 하시면 편리한 시간에 자세히 설명해드립니다) 

 

 

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

오늘은 회원가입 폼을 만들어 보겠습니다.

 

위 그림처럼 한 번 만들어볼까요?

웹표준으로 제작된 것이 아니기에 테이블로 전부 구성하였습니다.

 

요즘은 폼도 테이블로 안해도 꾸밀 수 있죠. 그런데 php 공부가 주 목적이라 웹표준화를 배제했습니다.

 

위 폼에 대한 소스는 아래와 같습니다.

<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" />
<title>회원가입</title>

</head>
<body>
<p>회원가입</p>
<table width="600" border="1" cellspacing="0" cellpadding="0" bordercolordark="#CCCCCC" bordercolorlight="#FFFFFF">
  <form name="register" id="register" method="post" action="register_ok_old.php" onSubmit="return chkForm(this)">
  <input type="hidden" name="chkId" id="chkId" value="N" />
  <input type="hidden" name="chkRecommender" id="chkRecommender" value="N" />
  <tr>
    <td width="80" height="24" bgcolor="#EEEEEE">아이디</td>
    <td colspan="3"><label for="txtId"></label>
    <input name="txtId" type="text" id="txtId" tabindex="1" size="12" maxlength="12" /> <input type="button" name="btnChkId" id="btnChkId" value="ID중복확인" tabindex="2" onClick="searchId()" /></td>
  </tr>
  <tr>
    <td height="24" bgcolor="#EEEEEE">암호</td>
    <td width="220"><label for="txtPasswd"></label>
    <input name="txtPasswd" type="password" id="txtPasswd" tabindex="3" size="12" maxlength="20" /></td>
    <td width="80" bgcolor="#EEEEEE">암호확인</td>
    <td width="220"><label for="txtPasswdConfirm"></label>
    <input name="txtPasswdConfirm" type="password" id="txtPasswdConfirm" tabindex="4" size="12" maxlength="20" /></td>
  </tr>
  <tr>
    <td height="24" bgcolor="#EEEEEE">이름</td>
    <td colspan="3"><label for="txtName"></label>
    <input type="text" name="txtName" id="txtName" tabindex="5" /></td>
  </tr>
  <tr>
    <td height="24" bgcolor="#EEEEEE">연락처</td>
    <td colspan="3"><label for="cboTel"></label><select name="cboTel" id="cboTel"  tabindex="6" >
      <option value="02" selected="selected">02</option>
      <option value="031">031</option>
      <option value="032">032</option>
      <option value="033">033</option>
      <option value="041">041</option>
      <option value="042">042</option>
      <option value="043">043</option>
      <option value="051">051</option>
      <option value="052">052</option>
      <option value="053">053</option>
      <option value="054">054</option>
      <option value="055">055</option>
      <option value="061">061</option>
      <option value="062">062</option>
      <option value="063">063</option>
      <option value="064">064</option>      
      <option value="010">010</option>

      <option value="011">011</option>
      <option value="016">016</option>
      <option value="017">017</option>
      <option value="018">018</option>
      <option value="019">019</option>
    </select>
      -
      <label for="txtTel2"></label><input name="txtTel2" type="text" id="txtTel2" size="4" maxlength="4" tabindex="7"  />
      -
      <label for="txtTel3"></label><input name="txtTel3" type="text" id="txtTel3" size="4" maxlength="4" tabindex="8"  /></td>
  </tr>
  <tr>
    <td height="24" bgcolor="#EEEEEE">우편번호</td>
    <td colspan="3"><label for="txtZipcode1"></label><input name="txtZipcode1" type="text" id="txtZipcode1" tabindex="9" size="3" maxlength="3" readonly="readonly"  />
      -
      <label for="txtZipcode2"></label><input name="txtZipcode2" type="text" id="txtZipcode2" tabindex="10" size="3" maxlength="3" readonly="readonly"  />
      <input type="button" name="btnSearchZipcode" id="btnSearchZipcode" value="우편번호검색" onClick="searchZipcode()" /></td>
  </tr>
  <tr>
    <td height="24" bgcolor="#EEEEEE">기본주소</td>
    <td colspan="3"><label for="txtAddr1"></label><input name="txtAddr1" type="text" id="txtAddr1" tabindex="11" size="50" maxlength="255" readonly="readonly"  /></td>
  </tr>
  <tr>
    <td height="24" bgcolor="#EEEEEE">상세주소</td>
    <td colspan="3"><label for="txtAddr2"></label><input name="txtAddr2" type="text" id="txtAddr2" size="50" maxlength="255" tabindex="12"  /></td>
  </tr>
  <tr>
    <td height="24" bgcolor="#EEEEEE">추천인ID</td>
    <td colspan="3"><label for="txtRecommender"></label><input name="txtRecommender" type="text" id="txtRecommender" size="12" maxlength="255" tabindex="12"  />
    <input type="button" name="btnRecommender" id="btnRecommender" value="추천인조회" onClick="search_recommand()" /></td>
  </tr>
  <tr>
    <td height="30" colspan="4" style="text-align:center;"><input type="submit" name="btnSubmit" id="btnSubmit" value="회원가입" tabindex="13"  />&nbsp;&nbsp;
    <input type="button" name="btnCancel" id="btnCancel" value="가입취소" tabindex="14" onClick="history.back()"  /></td>
  </tr>
  </form>
</table>
<p>&nbsp;</p>
</body>
</html>

 

 

다음 시간에는 아이디 중복확인을 알아 보겠습니다.

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

(회원가입을 하시면 편리한 시간에 자세히 설명해드립니다)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

PHP는 오래전부터 많이 사용해 왔는데 최근에 워드프레스가 PHP을 장착해서 출시되어

다시 한 번 각광을 받게 되었네요

열심히 배워두면 많은 도움이 될것 같습니다 오늘 부터는 PHP 설치부터

회원가입정도는 포스팅하고자 합니다.

우선 PHP를 설치하기 위해서는 아래와 같은 사향으로 준비하셔야 합니다.

 

1. 작업환경(하드웨어 제외)

 OS

Windows 7 

 APM_SETUP 

Ver 7.0 

 

2. 데이터베이스 생성

    정보를 저장하는 곳을 데이터베이스라고 합니다. 공부용으로 데이터베이스 하나를 생성해 볼까 합니다.

    전 pinkblue 라는 닉넴을 좋아해서 pinkblue 라는 DB를 생성하겠습니다.

 

   본 설명은 APM_Setup 7.0 이 설치되었다는 가정하에 설명하겠습니다.

      

 

   Step 1. 하단에 있는 작업표시줄에서 우측에 시계나오는 부분에 보시면 APM 이라는 아이콘이 있습니다.

            위 아이콘을 마우스 우클릭 합니다.


 

 

     Step2. 마우스로 우클릭하면 위 그림과 같이 팝업메뉴창이 열립니다. 팝업메뉴에서 MySQL관리 라는

             메뉴를 클릭합니다.

 

 

    Step3. 위 그림처럼 MySQL 서버러 접속할 수 있는 로그인 창이 보입니다. 사용자명은 root 이며 암호는 

            기본적으로 apmsetup 으로 apmsetup 을 설치 시, 설정됩니다.


 

     Step4. 위 그림처럼 새 데이터베이스 만들기에 pinkblue 라고 입력하고, 문자셋은 한글을 기본으로 셋팅

             하겠습니다. 우측 만들기 버튼을 클릭합니다.

 

      Step 5. Database 가 생성되었음을 확인할 수 있습니다.


 

 

     Step6. 데이터베이스에 새 사용자를 하나 추가 해 보겠습니다. 위 화면처럼 우측 탭에 사용권한을 

             클릭합니다. 

     Step7. 현재 생성되어있는 사용자명이 보입니다. 하단에 새 사용자 추가를 클릭합니다.


 

 

    Step8. 새 사용자를 추가할 수 있는 페이지가 보이면 

            사용자명 : pinkblue, 호스트 : localhost, 암호 : 비밀, 재입력 : 비밀 ㅋㅋ

            이렇게 입력하고 공부이니까 모두체크 클릭하시고, 사용자 생성 버튼을 클릭합니다.

    Step9. 축하드립니다. 데이터베이스 생성 및 DB 유저 추가가 완료되었습니다.

 

    물론, 호스팅업체(카페24, 미리내)이용할 경우엔 위와 같은 과정은 업체에서 다 해주니까 신경 안 쓰셔도

    됩니다.

    여기는 제 컴퓨터에 테스트 환경을 만들어 실제로 서버와 비슷한 환경을 구축한 후, 작성할 것이기에 

    위와 같은 작업을 하였습니다.

 

    다음 시간에는 회원가입을 실제로 만들어 보도록 하죠 !

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

(회원가입을 하시면 편리한 시간에 자세히 설명해드립니다)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,

 자바 스크립트의 주석처리 방법은 두가지가 있다.

1. 한줄 주석 : //

사용 예)

// 슬러쉬: 한 줄만 주석처리 할 경우 사용.

 

2. 전체 주석 : /* */

/* //주석시작

    alert("hello javascript");
    alert("1");
    alert("2");
    alert("3");
   */ //주석 끝

/*와 */ 사이에 있는 코드들은 실행되지 않는다.

 

1. Javascript

<script type="text/javascript">

<!--

document.getElementById("demo").innerHTML=Date();

//-->

</script>

 

<script type="text/javascript">

<!--HIDE

document.write("<FONT color=#333333>Now!</FONT>") // This is a comment

/* This is a comment */

//STOP HIDING-->

</SCRIPT>

 

Using an External JavaScript

<head>

<script type="text/javascript" src="xxx.js"></script>

</head>

 

<head>

<script type="text/javascript" src="xxx.js" charset="utf-8"/></script>

</head>

 

JavaScript in <head>

<head>

<script type="text/javascript">

function displayDate()

{

document.getElementById("demo").innerHTML=Date();

}

</script>

</head>

 

JavaScript in <body>

<body>

<p id="demo">This is a paragraph.</p>

<script type="text/javascript">

document.getElementById("demo").innerHTML=Date();

</script>

</body>

 

// body에서 버튼 클릭, 링크로 head함수 호출

<head>

<script type="text/javascript">

function tost(){

alert("I am an alert box!");

}

</script>

</head>

 

<body>

<input type="button" name="btn01" value="버튼01" onclick="tost()" />

<a href="javascript:tost()" style="text-decoration:underline; color:#515151">클릭</a>

</body>

 

2. HTML

<!--This is a comment. Comments are not displayed in the browser-->

 

2. CSS

/*This is a comment*/

 

External style sheet

<head>

<link rel="stylesheet" type="text/css" href="mystyle.css" />

</head>

 

Internal style sheet

<head>

<style type="text/css">

hr {color:sienna;}

p {margin-left:20px;}

body {background-image:url("images/back40.gif");}

</style>

</head>

 

Inline style

<p style="color:sienna;margin-left:20px">This is a paragraph.</p>

   

4. XML

<!-- This is a comment -->

 

5. PHP

//This is a comment

 

/*

This is

a comment

block

*/

 

<div class="leftmenu">

<?php include("menu.php"); ?>

</div>

 

 

직장을 다니면서 투잡(알바/부업)으로 월급 많큼 수익을 얻고 싶으시다면  

아래 접속하셔서 상담받아 보실 수 있습니다. (믿음의 재택부업회사)

 

블로그 이미지

itworldkorea

IT korea가 세상(world)을 변화시킨다.

,