สัปดาห์ที่ 12 : การเขียนเว็บโปรแกรมมิ่งด้วย PHP และเชื่อมต่อฐานข้อมูล MySQL

» ภาษา PHP นิยมใช้พัฒนาเว็บแอพลิเคชั่น
» ภาษา PHP จะมีนามสกุล .php
» การตั้งชื่อตัวแปรของภาษา PHP จะขึ้นต้นด้วย $ เช่น $a = 3;
» จบประโยคคำสั่งจะต้องตามด้วยเครื่องหมาย ; (semi colon)
» ภาษา PHP เป็น Casesensitive คือ ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กถือว่าเป็นคนละตัวกัน เช่น $A =3; $a=2;
» ภาษา Php เป็น Interpreter (แปลคำสั่งทีละบรรทัดแล้วจึงประมวลผล)
» การเขียนคำสั่ง PHP จะต้องอยู่ภายใน <?php ... ?>
» การแสดงข้อความและผลลัพธ์ ใช้คำสั่ง echo "... ข้อความ .. " 
» การแสดงผลลัพธ์ของตัวแปรอาร์เรย์ ใช้ำคำสั่ง print_r()
» การเขียนคอมเมนต์ใช้เครื่องหมาย # เช่น 
# นี่คือคอมเมนต์ บรรทัดนี้จะไม่ถูกประมวลผล
» การวนรอบของภาษา PHP ใช้คำสั่ง for และ while
» การเปรียบเทียบของภาษา Php ใช้คำสั่ง if {..} else {..} เหมือนภาษาโปรแกรมมิ่งทั่วไป

กิจกรรม 1 : การติดตั้ง WinSCP และ Visual Studio Code

» ดาวน์โหลด  WinSCP 
» ดาวน์โหลด  Visual Studio Code
» การตั้ง Visual Studio Code เป็น Editor ให้กับ WinSCP โดยเลือก View -> Preference -> Editors -> กดปุ่ม Add จากนั้นเลือก "C:\Users\{โฟลเดอร์}\AppData\Local\Programs\Microsoft VS Code\Code.exe" จากนั้นกดปุ่ม up เพื่อเลื่อนขึ้นไปบนสุดเป็น editor แรก 
» การตั้ง Theme ให้กับ Visual Studio Code  เลือก File -> Preference -> Color Theme -> เลือกโทนสีที่ต้องการ
» การตั้งฟอนต์ให้กับ Visual Studio Code เลือก File -> Preference -> Setting -> Text Editor -> Font จากนั้นป้อนชื่อฟอนต์ที่ต้องการลงในช่องฟอนต์

ล็อกอินเพื่ออัพโหลดและแก้ไขซอร์สโค๊ด

เลือกโปรโตคอล FTP
host : 10.33.3.85
user : รหัสนิสิต
password : รหัสประชาชน 13 หลัก
URL : http://10.33.3.85/รหัสนิสิต/ชื่อไฟล์กิจกรรม.php
หมายเหตุ: เนื่องจาก server เป็นคอมพิวเตอร์ในเน็ตเวอร์ของมหาวิทยาลัย ดังนั้น นิสิตต้องใช้ vpn ก่อนการอัพโหลดไฟล์และตรวจสอบเว็บของตนเอง

กิจกรรม 2 : การประกาศตัวแปรและแสดงผลลัพธ์ภายในตัวแปร

ไวยากรณ์พื้นฐานของภาษา PHP
1. การประกาศตัวแปร ใช้เครื่องหมาย $ นำหน้า 
2. แต่ละคำสั่ง (Statement) ปิดท้ายด้วยเครื่องหมาย semi colon (;) 
3. คำสั่ง PHP จะต้องอยู่ใน <?php คำสั่ง..... ?> 
4. การแสดงผลลัพธ์ของตัวแปร ใช้คำสั่ง echo เช่น echo " {$ชื่อตัวแปร} ";
<?php
$a = 3;
$b = 2;
$c = $a + $b;
echo "ถ้าเราเอา {$a} มาบวกกับ {$b} ผลลัพธ์จะเท่ากับ {$c}";
?>
ผลลัพธ์:
ถ้าเราเอา 3 มาบวกกับ 2 ผลลัพธ์จะเท่ากับ 5

กิจกรรม 3 : การประกาศตัวแปรอาร์เรย์ (array)

» ตัวแปรอาร์เรย์ คือ ตัวแปรลีสต์ในภาษาไพธอน มีการเข้าถึงสมาชิกภายในด้วยหมายเลข ประกาศด้วยคำสั่ง array() เช่น $students = array();
» การเพิ่มสมาชิกให้ตัวแปรอาร์เรย์ ใช้เครื่องหมายก้ามปู [ ] เช่น 
<?php
  $students = array();
  $students['3806908'] = "จักรกฤษณ์ แสงแก้ว";
  $students['3806909'] = "สมศักดิ์  คนดัง";
  $students['3806910'] = "เทพชัย  ใจกล้า";
?>

กิจกรรม 4 : การแสดงค่าภายในตัวแปรอาร์เรย์ด้วยคำสั่ง print_r()

» การแสดงค่าภายในตัวแปรอาร์เรย์ใช้คำสั่ง print_r() เช่น print_r($students)
<?php
  print_r($students);
?>
ผลลัพธ์
Array
(
    [3806908] => จักรกฤษณ์ แสงแก้ว
    [3806909] => สมศักดิ์  คนดัง
    [3806910] => เทพชัย  ใจกล้า
)

กิจกรรม 5 : การลบตัวแปรอาร์เรย์ด้วยคำสั่ง unset()

» การลบตัวแปรอาร์เรย์ด้วยคีย์ ใช้คำสั่ง unset() เช่น unset($students['3806909'])
<?php
  unset($students['3806909']);
  print_r($students);
?>
ผลลัพธ์
Array
(
    [3806908] => จักรกฤษณ์ แสงแก้ว
    [3806910] => เทพชัย  ใจกล้า
)

กิจกรรม 6 : การแยกสตริงด้วยคำสั่ง explode()

» การแยกสตริงด้วยคำสั่ง explode() เช่น 
<?php
  $txt = "ABC|DEF|GHI";
  $z = explode("|", $txt);
  print_r($z);
?>
ผลลัพธ์:
Array
(
    [0] => ABC
    [1] => DEF
    [2] => GHI
)

กิจกรรม 7 : การรวมอาร์เรย์เป็นสตริงด้วยคำสั่ง implode()

» การรวมอาร์เรย์เป็นสตริงด้วยคำสั่ง implode() เช่น 
<?php
  $txt = "ABC|DEF|GHI";
  $z = explode("|", $txt);
  echo implode("-",$z);
?>
ผลลัพธ์ 
ABC-DEF-GHI

กิจกรรม 8 : การนับจำนวนสมาชิกในอาร์เรย์ด้วยคำสั่ง count()

» การนับจำนวนสมาชิกในอาร์เรย์ด้วยคำสั่ง count() เช่น 
<?php
  print_r(count($z));
?>

กิจกรรม 9 : การวนเข้าไปในตัวแปรอาร์เรย์ ใช้คำสั่ง foreach()

» การวนเข้าไปในตัวแปรอาร์เรย์ ใช้คำสั่ง foreach() เช่น
<?php
  $txt = "Google|Gmail|Youtube";
  $z = explode("|", $txt);
  foreach($z as $b){
    echo "{$b}<br>";
  } 
ผลลัพธ์:
Google
Gmail
Youtube

กิจกรรม 10 : การวนรอบด้วยคำสั่ง for

» การวนรอบด้วยคำสั่ง for() เช่น
<?php
for($i=1;$i<=12;$i++){
  $qq = 9;
  $ans = $qq * $i;
  echo "{$qq} x {$i} = {$ans}<br>";
}
?>
ผลลัพธ์:
9 x 1 = 9
9 x 2 = 18
9 x 3 = 27
9 x 4 = 36
9 x 5 = 45
9 x 6 = 54
9 x 7 = 63
9 x 8 = 72
9 x 9 = 81
9 x 10 = 90
9 x 11 = 99
9 x 12 = 108

กิจกรรม 11 : การเปรียบเทียบด้วยคำสั่ง if/else

» การเปรียบเทียบใช้คำสั่ง if / else พิจารณาระยะริมฝีปากดังนี้
<?php
$e1 = 2;
if ($e1 > 5){
  echo "อ้าปาก";
}else{
  echo "หุบปาก";
}
?>
ผลลัพธ์:
หุบปาก

กิจกรรม 12 : การรับค่าตัวแปรจาก URL และนำมาใช้เพื่อการวนรอบ (Loop)

1. การวนรอบใน PHP ใช้คำสั่ง for และ while ดังนี้
2. การส่งข้อมูลไปจากผู้ใช้เว็บไปยัง PHP มี 2 วิธี คือ 1) GET โชวส์ข้อมูลใน URL 2) POST ซ่อนข้อมูลใน URL
3. การรับค่าจากวิธี GET ใช้ตัวแปร $_GET['ชื่อตัวแปร'] 
4. การรับค่าจากวิธี POST ใช้ตัวแปร $_POST['ชื่อตัวแปร']
ตัวอย่างต่อไปนี้เป็นการรับค่าจากวิธี GET Method
<?php
$q = $_GET['q'];
$start = $_GET['start'];
$stop = $_GET['stop'];
for($i= $start; $i<=$stop; $i++){
   $z = $i * $q;
   echo "{$q} x {$i} = {$z}";
}
?>
4. ป้อน URL -> http://10.33.3.85/รหัสนิสิต/ชื่อไฟล์.php?q=3&start=10&stop=200

กิจกรรม 13 : การสร้างตารางสำหรับเก็บข้อมูลรายชื่อเพื่อน (tb_friend)

1. ให้สร้างฐานข้อมูล
2. สร้างตาราง ชื่อ รหัสนิสิต_friend  
3. เพิ่มข้อมูลลงในตารางอย่างน้อย 3 เรคคอร์ด (แถว)
วีดีโอสอน : การสร้างฐานข้อมูล : 

กิจกรรม 14 : การเชื่อมต่อฐานข้อมูล

1. สร้างไฟล์สำหรับการเชื่อมต่อฐานข้อมูล และตั้งชื่อไฟล์ว่า connect.php ดังนี้
$servername = "ระบุ-host";
$username = "ระบุชื่อผู้ใช้ฐานข้อมูล";
$password = "ป้อนรหัสผ่าน";

// สร้างการเชื่อมต่อฐานข้อมูล
$conn = new mysqli($servername, $username, $password);

// ตรวจสอบว่าเชื่อมต่อได้มั้ย
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
2. อัพโหลดไฟล์ขึ้น Server ด้วยโปรแกรม FTP เช่น WinSCP
3. เปิดบราวเซอร์และพิมพ์ URL : http://ระบุ-host/programming/3806908/connect.php

กิจกรรม 15 : การเขียนโปรแกรมแสดงรายการข้อมูล

1. สร้างไฟล์ select.php
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$servername = "ระบุ-host";
$username = "ระบุชื่อผู้ใช้ฐานข้อมูล";
$password = "รหัสผ่านฐานข้อมูล";
$dbname = "ชื่อฐานข้อมูล";

$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, firstname, lastname , email FROM 3806908_friend";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        echo "{$row['id']}  {$row['firstname']}  | {$row['lastname']} | {$row['email']} <br>";
    }
} else {
    echo "0 results";
}
$conn->close();
?>

</body>
</html>
วีดีโอสอน : การเขียนโปรแกรมแสดงรายการข้อมูล

กิจกรรม 16 : การเพิ่มข้อมูลลงในตาราง

1. สร้างไฟล์ form.html ระบุ action และ method ดังนี้
<html>
<head><meta charset='utf-8'>
<body>

<h2>HTML Forms</h2>

<form action="/insert.php" method="post">
  ชื่อ :<br>
  <input type="text" name="firstname">
  <br>
  สกุล :<br>
  <input type="text" name="lastname">
  <br>
  อีเมล์ :<br>
  <input type="text" name="email">
  <br><br>
  <input type="submit" value="Submit">
</form> 
</body>
</html>
2. สร้างสคริปต์ insert.php มีรายละเอียดดังนี้
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$servername = "ระบุ-host";
$username = "ระบุชื่อผู้ใช้ฐานข้อมูล";
$password = "รหัสผ่านฐานข้อมูล";
$dbname = "ชื่อฐานข้อมูล";

$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO 3806908_friend (firstname, lastname, email) VALUES (\"{$_POST['firstname']}\", \"{$_POST['firstname']}\", \"{$_POST['firstname']}\");";
#echo $sql;
$result = $conn->query($sql);
$conn->close();
?>
</body>
</html>

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=select.php">
วีดีโอสอน : การเพิ่มข้อมูลลงในตาราง

กิจกรรม 17 : การลบข้อมูลจากรายการที่เลือก

1. แก้ไขสคริปต์แสดงรายการข้อมูลในหน้า select.php ดังนี้
echo "{$row['id']}  {$row['firstname']}  | {$row['lastname']} | {$row['email']} <a href='del.php?id={$row['id']}'>ลบ</a> <br>";
2. เขียนสคริปต์ del.php ดังนี้
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$servername = "202.28.34.204";
$username = "i_user";
$password = "รหัสผ่าน";
$dbname = "ชื่อฐานข้อมูล";

$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "DELETE FROM 3806908_friend WHERE id = {$_GET['id']};";
$result = $conn->query($sql);
$conn->close();
?>
</body>
</html>

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://202.28.34.204/programming/3806908/select.php">

กิจกรรม 18 : การแก้ไขข้อมูลจากรายการที่เลือก

1. ใส่ลิงค์การแก้ไขในหน้า select.php ดังนี้
echo "{$row['id']}  {$row['firstname']}  | {$row['lastname']} | {$row['email']} <a href='del.php?id={$row['id']}'>ลบ</a>  <a href='form_edit.php?id={$row['id']}'>แก้ไข</a> <br>";
2. สร้างสคริปต์ฟอร์ม form_edit.php สำหรับแก้ไขข้อมูล โดยเขียนโค๊ดดังนี้
<html>
<head><meta charset='utf-8'>
<body>

<h2>HTML Forms</h2>
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "db1";

$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, firstname, lastname , email FROM tb_friend WHERE id = {$_GET['id']}";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$conn->close();

?>
<form action="/edit.php?id=<?=$_GET['id']?>" method="post">
  ชื่อ :<br>
  <input type="text" name="firstname" value="<?php echo $row['firstname']; ?>">
  <br>
  สกุล :<br>
  <input type="text" name="lastname" value="<?php echo $row['lastname']; ?>">
  <br>
  อีเมล์ :<br>
  <input type="text" name="email" value="<?php echo $row['email']; ?>">
  <br><br>
  <input type="submit" value="Submit">
</form> 
</body>
</html>
3. เขียนสคริปต์อัพเดทข้อมูล edit.php
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "db_friend";

$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "Update 3806908_friend SET firstname = \"{$_POST['firstname']}\", lastname = \"{$_POST['lastname']}\", email = \"{$_POST['email']}\" WHERE id = {$_GET['id']};";
echo $sql;
$result = $conn->query($sql);
$conn->close();
?>
</body>
</html>

<META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://localhost/select.php">

กิจกรรม 19 : การสืบค้น

ให้เพิ่ม textbox ใน select.php และแก้ไข select.php ดังนี้
1. เพิ่ม textbox ใน select.php ดังนี้
<form action="select.php">
  ป้อนคำค้น : <input type="text" name="q">
  <input type="submit" value="Submit">
</form>
2. แก้ไขไฟล์ select.php ดังนี้
if($_GET['q']){
   $sql = "SELECT id, firstname, lastname , email FROM tb_friend WHERE firstname like '%{$_GET['q']}%' ";
}else{
   $sql = "SELECT id, firstname, lastname , email FROM tb_friend";
}
ตัวอย่าง : การใส่สคริปต์สำหรับการค้นข้อมูล

วีดีโอ : 1/15 : ftp-01.mp4

วีดีโอสอน :   ftp-01.mp4

วีดีโอ : 2/15 : php-01.mp4

วีดีโอสอน :   php-01.mp4

วีดีโอ : 3/15 : php-02.mp4

วีดีโอสอน :   php-02.mp4

วีดีโอ : 4/15 : php-03.mp4

วีดีโอสอน :   php-03.mp4

วีดีโอ : 5/15 : php-06.mp4

วีดีโอสอน :   php-06.mp4

วีดีโอ : 6/15 : php-09.mp4

วีดีโอสอน :   php-09.mp4

วีดีโอ : 7/15 : php-10.mp4

วีดีโอสอน :   php-10.mp4

วีดีโอ : 8/15 : php-11.mp4

วีดีโอสอน :   php-11.mp4

วีดีโอ : 9/15 : php-12.mp4

วีดีโอสอน :   php-12.mp4

วีดีโอ : 10/15 : php-13.mp4

วีดีโอสอน :   php-13.mp4

วีดีโอ : 11/15 : php-16.mp4

วีดีโอสอน :   php-16.mp4

วีดีโอ : 12/15 : php-17.mp4

วีดีโอสอน :   php-17.mp4

วีดีโอ : 13/15 : php-18.mp4

วีดีโอสอน :   php-18.mp4

วีดีโอ : 14/15 : php-19.mp4

วีดีโอสอน :   php-19.mp4

วีดีโอ : 15/15 : php-final.mp4

วีดีโอสอน :   php-final.mp4

รายชื่อการเข้าเรียนและส่งงาน

» ไม่พบกิจกรรมการเรียนในสัปดาห์นี้ กรุณาตรวจสอบเวลา : วันนี้ คือ วันที่ 29-03-2024
สัปดาห์ที่ 12 : การเขียนเว็บโปรแกรมมิ่งด้วย PHP และเชื่อมต่อฐานข้อมูล MySQL