ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PHP 기본 문법
    데이터베이스/SQL 2023. 12. 28. 17:02

    PHP 코드의 확정명은 *.php로 사용

     

    • php 기본 틀
    <?php
    
    ?>

     

    • php 주석
    <?php
      // 한 줄 주석용
      /*
        여러 줄
        주석용
      */
    ?>

     

    • 변수와 출력
    <?php
      $a = 100;
      print $a;
      
      $b = "안녕하세요? MariaDB";
      echo $b;
    ?>
    
    // 실행 결과
    100안녕하세요?MariaDB

     

    PHP의 변수 이름은 몇 가지 규칙을 따라야 함

    • 제일 앞에 $가 붙어야 함
    • 문자와 숫자, 언더바(_)를 사용할 수 있지만 숫자로 시작할 수 없음

              ex) $abc (O), $abc123 (O), $_abc123 (O), $123 (X), $123abc (X)

    • 대소문자를 구별함 ex) $abc와 $ABC는 다른 변수

     

    • 데이터 형식

    PHP 데이터 형식은 정수(int), 실수(double), 문자열(string), 불형(boolean), 객체(object), 배열(array) 등이 있음

    <?php
     $a = 123;              echo gettype($a), "<br>";
     $a = 123.123;          echo gettype($a), "<br>";
     $a = "MariaDB";        echo gettype($a), "<br>";
     $a = true;             echo gettype($a), "<br>";
     $a = array( 1, 2, 3);    echo gettype($a), "<br>";
    ?>

    위 코드 실행 결과

    • 문자열

    문자열은 큰 따옴표 혹은 작은 따옴표를 사용해도 되지만 큰 따옴표로 묶고, 그 내부에 필요할 경우 작은 따옴표로 묶어주는 방식이 적절함

    <?php
       $str1 = "이것이 MariaDB다<br>";    echo $str1;
       $str2 = 'PHP 프로그래밍<br>';    echo $str2;
       $str3 = "SELECT * FROM userTBL WHERE userID='JYP' ";    echo $str3;
    ?>

    • 조건문과 반복문
    • if() 함수

    조건식의 결과는 TRUE 또는 FALSE가 오는데 주로 비교 연산자인 ==, <>, <, >, <=, >= 등이 사용됨

    <?php
      $a=100;
      $b=200;
      
      if($a > $b) {
         echo "a가 b보다 큽니다.";
      } else {
         echo "a가 b보다 작습니다.";
      }
    ?>
    
    // 실행 결과
    a가 b보다 작습니다.

     

    여러 개의 조건이 필요하다면 if ~ elseif를 사용할 수 있음

    <?php
       $jumsu=83;
       
       if($jumsu >= 90) {
          echo "A학점";
       } elseif($jumsu >= 80) {
          echo "B학점";
       } elseif($jumsu >= 70) {
          echo "C학점";
       } elseif($jumsu >= 60) {
          echo "D학점";
       } else {
          echo "F학점";
       }
    ?>
    
    // 실행 결과
    B학점

     

    • switch() 함수

    if~elseif와 비슷하게 switch~case로 여러 개의 조건 처리 가능, default 부분은 생략 가능

    형식 :
    switch(변수) {
      case 값1 :
        // 값1이면 이 부분을 처리
        break;
      case 값2 :
        // 값2면 이 부분을 처리
        break;
      ...
      default:
        // 아무것도 해당 안 되면 이 부분 처리
    }
    <?php
       $jumsu=83;
       
       switch(intval($jumsu / 10)) {
          case 10:  //100점인 경우도 A학점 처리
          case 9:
            echo "A학점"; break;
          case 8:
            echo "B학점"; break;
          case 7:
            echo "C학점"; break;
          case 6:
            echo "D학점"; break;
          default:
            echo "F학점";
        }
    ?>
    • for() 함수
    형식 :
    for(초깃값 ; 조건식 ; 증감식) {
       // 반복할 부분
    }
    <?php
       for( $i=1; $i<=10 ; $i=$i+1 ) {
          echo $i, " ";
       }
    ?>
    
    // 실행 결과
    1 2 3 4 5 6 7 8 9 10
    
    <?php
       $hap=0;
       
       for( $i=123; $i<=456 ; $i=$i+2 ) {
         $hap = $hap + $i;
       }
       
       echo "123부터 456까지 홀수의 합계 : ", $hap;
    ?>
    
    // 실행 결과
    123부터 456까지 홀수의 합계 : 48263

     

    • while() 함수
    형식 : 
    while(조건식) {
       // 반복할 부분
    }
    
    /* while문의 필수는 아니지만 초깃값과 증감식의 위치 파악 */
    형식 :
    초깃값;
    while(조건식) {
       // 반복할 부분
       증감식;
    }
    <?php
       $hap=0;
       
       $i = 123;
       while( $i<=456 ) {
         $hap = $hap + $i;
          $i=$i+2;
       }
       
       echo "123부터 456까지 홀수의 합계 : ", $hap;
    ?>
    
    // 실행 결과
    123부터 456까지 홀수의 합계 : 48263

     

    • 배열
    형식1 :
    $배열명 = array(값1, 값2, 값3 ...);
    
    형식2 :
    $배열명 = range(시작값, 끝값, 증가값);  // 증가값 생략 가능
    
    형식3 :
    $배열명[0] = 값1;  // 배열명 정의되어 있지 않아도 배열 생성됨
    $배열명[1] = 값2;
    $배열명[2] = 값3;
    ...
    <?php
       $myArray = array(100, 'MariaDB', 123.123);
       echo $myArray[0], " ", $myArray[1], " ", $myArray[2], "<br>";
    
       $myArray = range(1,3);
       echo $myArray[0], " ", $myArray[1], " ", $myArray[2], "<br>";
    
       $myArray = range(1,10,2);
       echo $myArray[0], " ", $myArray[4], "<br>";
    
       $newArray[0] = 'This';
       $newArray[1] = 'is';
       $newArray[2] = 'MariaDB';
       echo $newArray[0], " ", $newArray[1], " ", $newArray[2], "<br>";
    ?>

    <?php
       $hap = 0;
       $myArray = range(1, 10);
    
       for($i=0; $i<10; $i++) {
          $hap = $hap + $myArray[$i];
       }
        echo "배열의 합계 : ", $hap;
    ?>

    <?php
       $myArray = range(1, 10);
    
       echo "임의로 섞은 값 ==> ";
       shuffle($myArray);
       foreach($myArray as $data)
        echo $data, " ";
       
       echo "<br>오름차순 정렬 ==> ";
       sort($myArray);
       foreach($myArray as $data)
        echo $data, " ";
    
       echo "<br>내림차순 정렬 ==> ";
       rsort($myArray);
       foreach($myArray as $data)
        echo $data, " ";
    
       echo "<br>순서를 반대로 ==> ";
       $revArray = array_reverse($myArray);
         foreach($revArray as $data)
        echo $data, " ";
    ?>

     

    • PHP 내장 함수
    <?php
       $today = "현재는 ".date("Y-m-j")." 입니다.";
        echo $today, "<br>";
    
       $ary = array(100, 50, 200, 7);
       echo "최대:", max($ary) ," 최소:", min(-123, 50, 999), "<br>";
    
       echo pi(), " ", round(M_PI), " ",ceil(M_PI), "<br>";
    
       $str = "   This is MariaDB   "; // 앞뒤 공백 3개씩
        $str = trim($str);
       echo "#", $str, "#", "<br>";
       
       echo "문자열 길이:", strlen($str), "<br>";
    
       echo str_repeat("-", 30), "<br>";
    
       echo str_replace( "MariaDB", "마리아디비", "This is MariaDB"), "<br>";
    
       $ary = explode(" ", "This is MariaDB");
       print_r($ary); echo "<br>"; // 배열 출력
    
         echo implode($ary, " "), "<br>";
    
       $myHTML = "<A href='www.hanbit.co.kr'> 한빛미디어 </A> <br>";
         echo $myHTML;
       echo htmlspecialchars($myHTML);
    ?>

    • HTML과 PHP 관계
    • 데이터 전송 개념
    // send.html 파일
    <HTML>
    <HEAD>
    <META http-equiv="content-type" content="text/html; charset=UTF-8">
    </HEAD>
    <BODY>
        
    <FORM METHOD="post" ACTION="receive.php">
        아이디 : <INPUT TYPE ="text" NAME="userID">
        이름 : <INPUT TYPE ="text" NAME="userName">
        <BR><BR>
        <INPUT TYPE="submit" VALUE="전송">
    </FORM>
    
    </BODY>
    </HTML>
    // receive.php 파일
    <?php
       $userID = $_POST["userID"];
       $userName = $_POST["userName"];
    
       echo "전달 받은 아이디 : ", $userID, "<br>";
       echo "전달 받은 이름 : ", $userName, "<br>";
    ?>

     

    • post get 전달 방식

    결과는 동일, 차이점은

    post 방식의 결과는 주소창에 localhost/receive.php만 있지만

    get 방식의 결과는 주소 뒤에 '?변수=값&변수=값' 방식으로 값이 전달됨

    get 방식을 썼을 때의 결과 주소창

     

    • HTML 문법으로만 구성된 파일의 확장명을 *.php로 저장해 사용해도 상관없음
    <HTML>
    <HEAD>
    <META http-equiv="content-type" content="text/html; charset=UTF-8">
    </HEAD>
    <BODY>
        
    <FORM METHOD="post" ACTION="receive.php">
        아이디 : <INPUT TYPE ="text" NAME="userID">
        이름 : <INPUT TYPE ="text" NAME="userName">
        <BR><BR>
        <INPUT TYPE="submit" VALUE="전송">
    </FORM>
    
    </BODY>
    </HTML>

    ex) 위와 같은 파일도 확장자를 .html이 아닌 .php로 저장해도 오류 메시지가 뜨지 않고 잘 실행됨

    '데이터베이스 > SQL' 카테고리의 다른 글

    회원 관리 시스템  (0) 2023.12.29
    PHP와 MariaDB 연동  (0) 2023.12.28
    MariaDB 생성 및 Query Practice  (0) 2023.12.21
    XAMPP 설치  (0) 2023.12.14
    SQL 고급  (0) 2023.11.09
Designed by Tistory.