Sunday, June 27, 2010

บทที่ 5 ความรู้พื้นฐานเกี่ยวกับภาษา PHP


 

  • การเปิดปิดแท็ก PHP (PHP Code Syntax)


 

รูปแบบแท็ก

เปิดแท็ก PHP

ปิดแท็ก PHP

แบบมาตรฐาน

<?php 

?> 

แบบสั้น

<? 

?> 

แบบ ASP

<% 

%> 

แบบ Script

<script language="PHP">

</script> 


 

  • รูปแบบคำสั่ง (PHP Statement)


     

    <HTML>

    <BODY>


    <?php

    echo "Hello, World!!";

    ?>


    </BODY>

    </HTML>


     


     

  • ตัวแปร (Variables)

ตัวแปร คือ การเขียนคำสั่งให้โปรแกรม (PHP) จองพื้นที่ในหน่วยความจำ (memory) ไว้ส่วนหนึ่ง เพื่อเก็บข้อมูลบางอย่าง ตามที่ผู้เขียนโปรแกรมกำหนด

  • การประกาศตัวแปร
    • การประกาศตัวแปรเริ่มต้นด้วยเครื่องหมาย $ (Dollar sign)
    • ชื่อตัวแปรต้องเริ่มต้นด้วยตัวอักษรภาษาอังกฤษหรือเครื่องหมาย underscore ("_")
    • ตัวอย่างการประกาศตัวแปรที่ถูกต้อง:

      $total

      $_cell1

      $length_of_string

    • ตัวอย่างการประกาศตัวแปรที่ผิด:        

      total

      $1_total

      $2_length


 

  • การกำหนดค่าให้ตัวแปร
    • กำหนดค่าเป็นตัวเลขจำนวนเต็ม:

      <?php

      $total = 10;

      ?>

    • กำหนดค่าเป็นตัวเลขทศนิยม:

      <?php

      $PI = 3.14;

      ?>

    • การกำหนดค่าเป็นข้อความ (string) ให้ใช้ quotes (") หรือ single quote ( ' ):

      <?php

      $example1 = 'This is a single quoted string';

      $example2 = "This is a double quoted string";

      ?>

    • ข้อแตกต่างระหว่าง quotes ( " ) กับ single quote ( ' ) คือ ภายใต้ single quote ( ' ) ตัวแปรไม่สามารถแสดงค่าได้:

      <php

      $total = 10;

      $example1 = ' The total is $total ';

      $example2 = " The total is $total ";

      ?>

      ผลการกำหนดค่าให้ตัวแปร $example1:    "The total is $total"
      ผลการกำหนดค่าให้ตัวแปร $example2:    "The total is 10"

    • การนำข้อความ (string) มาเชื่อมต่อกันโดยใช้จุด "." :

      <php

      $a = 'apples';

      $b = 'bananas';

      $c = $a . ' and ' . $b;

      ?>

    ผลการกำหนดค่าให้ตัวแปร $c:    "apples and bananas"

    • การนำข้อความ (string) มาเชื่อมต่อกันโดยใช้ ".=" :

      <php

      $a = 'apples';

      $a .= ' and bananas';

      ?>

    ผลการกำหนดค่าให้ตัวแปร $a:    "apples and bananas"


 

  • อักขระต้องห้าม (Escape Characters)

        ตัวอักขระต้องห้าม (Escape Characters) คือตัวอักษรที่ตัวแปรภาษาไม่สามารถดำเนินการประมวลผลได้ เนื่องจากจะซ้ำกับกฏ หรือ คำบังคับของภาษา ดังนั้นต้องหลีกเลี่ยงโดยการใช้เครื่องหมายบางอย่างไปกำกับไว้ ในภาษา PHP จะใช้ Back Slash ( \ ) ไปเขียนกำกับไว้ข้างหน้าตัวอักขระต้องห้าม


     

Character 

Escaped Character 

Description 

ไม่มี

\n 

Adds a linefeed 

ไม่มี

\r 

Adds a carriage return 

ไม่มี

\t 

Adds a tab 

\ 

\\ 

Back Slash

$ 

\$ 

Dollar Sign 

" 

\" 

Double Quote 


 

  • การแสดงผลเครื่องหมาย Double Quote ( " )

    <?php echo " \" "; ?>

  • การแสดงผลเครื่องหมาย Dollar Sign ( ? )

    <?php echo " \? "; ?>

  • การแสดงผลเครื่องหมาย Back Slash ( \ )

    <?php echo " \\ "; ?>


 

  • อาร์เรย์ (Arrays)
    • อาร์เรย์ คือ ตัวแปรชนิดหนึ่งที่สามารถเก็บข้อมูลได้หลายค่าในเวลาเดียวกัน โดยเก็บข้อมูลในลักษณะคู่ลำดับ
      • การสร้างอาร์เรย์ทำได้ 2 วิธีการ
        • การสร้างอาร์เรย์โดยใช้ฟังก์ชั่น array()
              <?php

                $personInfo = array( "cid" => "1296857369124" ,
        "firstname" => "Dulyawat" ,
                 "lastname" => "Mapong" ,
                     "age" => 30 );

                ?>

        • การสร้างอาร์เรย์โดยวิธีการกำหนดค่าแบบ Dynamic

                <?php
                $personInfo["cid"] = "1296857369124";
        $personInfo["firstname"] = "Dulyawat";
        $personInfo["lastname"] = "Mapong";
            $personInfo["age"] = 30;

                ?>

      • อาร์เรย์เก็บข้อมูลในลักษณะเป็นคู่ลำดับ โดยข้อมูลที่เก็บในอาร์เรย์แต่ละค่า ประกอบด้วย
        คีย์ (Key) เป็นตัวชี้ตำแหน่ง และข้อมูลที่เก็บ (Value)

        คีย์ (Key)
        ค่า (Value)
        cid 1296857369124
        firstname Dulyawat
        lastname            Mapong
        age            30
      • การแสดงค่าจากอาร์เรย์ ใช้คำสั่ง echo และระบุชื่อของอาร์เรย์พร้อมทั้งชื่อคัย์ (Key) ของอาร์เรย์:

      <?php

      echo "หมายเลข CID : " . $personInfo["cid"] . "<BR>";
      echo "ชื่อ : " . $personInfo["firstname"] . "<BR>";
      echo "นามสกุล : " . $personInfo["lastname"] . "<BR>";
      echo "อายุ : " . $personInfo["age"] . "<BR>";

      ?>

      ผลลัพธ์:

          หมายเลข CID : 1296857369124
          ชื่อ : Dulyawat
          นามสกุล : Mapong
          อายุ : 30


       

  • คำสั่งควบคุม (Control Structures)
    • if

    if ($apples > $bananas) echo "You have more apples than bananas!";

    • if … else

      if ($apples > $bananas) echo "You have more apples than bananas!";
      else if ($apples == $bananas) echo "You have apples less than or equal to bananas!";

    • if … else if … else
      if ($apples > $bananas) echo "You have more apples than bananas!";
      else if ($apples == $bananas) echo "You have apples equal to bananas!";
      else echo "You have less apples than bananas!";


 

  • ตัวดำเนินการ (Operators)

Operator 

ความหมาย

== 

เท่ากับ (Equal to)

!= 

ไม่เท่ากับ (Not equal to)

<> 

ไม่เท่ากับ (Not equal to)

< 

น้อยกว่า (Less than)

> 

มากกว่า (Greater than)

<= 

น้อยกว่าหรือเท่ากับ (Less than or equal to)

>= 

มากกว่าหรือเท่ากับ (Greater than or equal to)


 

  • การใช้คำสั่งควบคุมและตัวดำเนินการ (Control Structures and Operators)

    if ($apples > $bananas)

    {

    echo "You have more apples than bananas, so I'm taking away your bananas!";

    $bananas = 0;

    }


 

  • การวนลูปแบบ for (for Loop)
    • การใช้ fore สำหรับการวนลูปค่าทั้งหมดอาร์เรย์

      <?php

      //สร้างอาร์เรย์ชื่อ $arrayAmpur โดยใช้ฟังก์ชั่น array()

      $arrayAmpur = array( "เมื่อง" , "บางกรวย" , "บางใหญ่" );


       

      for ( $i = 0; $i < count($arrayAmpur); $i ++)

      {

      echo " $i : " . $arrayAmpur[$i] . "<BR>";

      }

      ?>

      ผลลัพธ์:

      0 : เมื่อง
      1 : บางกรวย
      2 : บางใหญ่


 

  • การวนลูปแบบ foreach (foreach Loop)
    • การใช้ foreach สำหรับการวนลูปค่าทั้งหมดอาร์เรย์

      <?php

      //สร้างอาร์เรย์ชื่อ $arrayAmpur โดยใช้ฟังก์ชั่น array()

      $arrayAmpur = array( "1201" => "เมื่อง" , "1202" => "บางกรวย" );


       

      foreach ( $arrayAmpur as $kAmpur => $vAmpur)

      {

      echo " $kAmpur : $vAmpur <BR>";

      }

      ?>

      ผลลัพธ์:

      1201 : เมื่อง
      1202 : บางกรวย


 

  • การวนลูปแบบ while (while Loop)
    • การใช้ while สำหรับการวนลูปค่าทั้งหมดจากตาราง employees ของฐานข้อมูลชื่อ "compasstravel"

      <?php

      //การติดต่อฐานข้อมูล กำหนดให้ connection ชื่อ $dbconn

      $dbconn = mysql_connect("localhost" , "root" , "rootpass");

      //การเลือกใช้งานฐานข้อมูลชื่อ "compasstravel" โดยติดต่อผ่าน connection ชื่อ $dbconn

      mysql_select_db("compasstravel" , $dbconn);

      //ประมวลผลคำสั่ง SQL ผลลัพธ์ที่ได้เก็บในตัวแปร $rsEmp โดยติดต่อผ่าน connection ชื่อ $dbconn

      $rsEmp = mysql_query("SELECT * FROM employees" , $dbconn);

      while ( $row_rsEmp = mysql_fetch_array($rsEmp) ) //เริ่มต้นวนลูป while

      {

      echo "Employee ID: " . $row_rsEmp['employeeid'] . "<BR>";

      echo "First Name: " . $row_rsEmp['firstname'] . "<BR>";

      echo "Last Name: " . $row_rsEmp['lastname'] . "<BR>";

      } //จบการวนลูป while


       

      //ปิดการติดต่อฐานข้อมูลชื่อ $dbconn

      mysql_close($dbconn);

      ?>

      ผลลัพธ์:

      Employee ID: 26
      First Name: David
      Last Name: Beckham


 

  • ฟังก์ชั่น (Functions)
    • ฟังก์ชั่นของ PHP (PHP Built-In Functions)

      echo()        เช่น    echo(" Hello, World ")
      print()        เช่น    print(" Hello, World ")
      date()        เช่น     date("Y-m-d H:i:s")
      substr()        เช่น     substr("ABCDEF" , 0 , 4)
      strlen()        เช่น     strlen("ABCDEFGH")
      strpos()        เช่น     strpos("ABCDEFGHI" , "DE")
      strtoupper()    เช่น    strtolower("AbCdEfGh")
      strtolower()    เช่น    strtolower("AbCdEfGh")
      trim()        เช่น    trim(" A B C ")
      explode()        เช่น     explode("|" , "ABC|DEF|GHI")
      list()        เช่น     list($a , $b , $c) = explode("|" , "ABC|DEF|GHI")
      sprintf()        เช่น    sprintf("%01.2f" , 5.56)

    • ฟังก์ชั่นที่สร้างขึ้นเอง (PHP User-Defined Functions)
      • รูปแบบการประกาศฟังก์ชั่น
        function function_name ( argument )
        {
        statement;
        .....
        }
      • ฟังก์ชั่นสำหรับแปลงข้อมูลวันเดือนปี จากรูปแบบมาตรฐาน YYYY-MM-DD (ปี ค.ศ.)

        <?php

        function thaidate($vardate) //เริ่มต้นการประกาศฟังก์ชั่น

        {

        $arrayDate = explode("-", $vardate);

            list($yearno, $monthno, $dayno) = $arrayDate;

            $temp = $dayno . "/" . $monthno . "/" . ($yearno+543);

            return $temp;

        } //สิ้นสุดการประกาศฟังก์ชั่น
        ?>


        ฟังก์ชั่นนี้สามารถเรียกใช้ได้จากที่ใดๆ ในไฟล์ PHP ที่ประกาศฟังก์ชั่น thaidate() ไว้

        <?php

        //ข้อมูล YYYY-MM-DD ที่จะป้อนให้ฟังก์ชั่น

        $birthdate = "1971-05-20";


         

        //เรียกใช้ฟังก์ชั่น ให้แปลงข้อมูลรูปแบบ DD/MM/YYYY (ปี พ.ศ.) จะได้ผลลัพธ์ 20/05/2514

        echo thaidate($birthdate);
        ?>


         

      • ฟังก์ชั่นสำหรับเรียกค้นหาข้อมูลชื่อแผนก

        <?php

        function GetDept($deptid) //เริ่มต้นการประกาศฟังก์ชั่น


         

        //การติดต่อฐานข้อมูล กำหนดให้ connection ชื่อ $dbconn

        $dbconn = mysql_connect("localhost" , "root" , "rootpass");

        //การเลือกใช้งานฐานข้อมูลชื่อ "compasstravel" ผ่าน connection ชื่อ $dbconn

        mysql_select_db("compasstravel" , $dbconn);

        //ประมวลผลคำสั่ง SQL ผลลัพธ์ที่ได้เก็บในตัวแปร $rsDep ผ่าน connection ชื่อ $dbconn

        $rsDep = mysql_query("SELECT * FROM departments WHERE deptid=$deptid ",$dbconn);

        $row_rsDep = mysql_fetch_array($rsDep);

        if ( $row_rsDep && ( mysql_num_rows($row_rsDep) > 0 ) ) {

        $temp = $row_rsDep['deptname'];

        } //end If


         

        //ปิดการติดต่อฐานข้อมูลชื่อ $dbconn

        mysql_close($dbconn);

        
         return $temp; //ส่งค่าออกจากฟังก์ชั่น


 

        } //สิ้นสุดการประกาศฟังก์ชั่น

?>


 

ฟังก์ชั่นนี้สามารถเรียกใช้ได้จากที่ใดๆ ในไฟล์ PHP ที่ประกาศฟังก์ชั่น GetDept() ไว้

<?php

//ข้อมูลรหัสแผนกปัจจุบัน

$current_deptid = "7";


 

//เรียกใช้ฟังก์ชั่น ให้แสดงชื่อแผนก โดยส่งค่าพารามิเตอร์ $current_deptid ให้ฟังก์ชั่น

echo GetDept($current_deptid);
?>


 

No comments: