วิธีสร้างแอพจัดการหนังสือที่บ้านด้วยตนเอง EP2

หลังจาก ออกแบบตารางฐานข้อมูลด้วย Google sheet 
ขั้นต่อมาไปที่ appsheet
สร้าง new แอพ เลือกตารางฐานข้อมูล ไปที่ตาราง google sheet ที่สร้างไว้ นำเข้ามาให้ครบทั้ง 3 ตาราง
ขั้นต่อมา 
กำหนดคุณสมบัติเฉพาะของแต่ละคอลัมน์ 
ดังนี้

โดยที่ตาราง Books บันทึกข้อมูลหนังสือ จะมี 6 คอลัมน์ ได้ แก่ 

Book ID       text เป็น key หลัก ค่าเริ่มต้น initial ใส่ uniqeid()

Book title    test 

Book cover    image 

Book cate    ref    (สร้างตารางเพิ่ม )

Book author    text 

Book status  enum เพิ่มสถานะ  ถูกยืม และ พร้อมใช้งาน 

 

ตาราง Borrowed บันทึกข้อมูลการยิมหนังสือ จำนวน 7 คอลัมน์ ได้แก่ 

Borrow ID   text เป็น key หลัก ค่าเริ่มต้น initial ใส่ uniqeid()

Book ID   ref โยงไปที่ตารางหนังสือ books

Member ID   ref โยงไปที่ตารางหนังสือ Members

Date start   วันที่ date

Date end  วันที่ date

Date return   วันที่ date

Borrow status    enum เพิ่มเงื่อนไข  ถูกยืม และ ส่งคืน 


ตาราง Members บันทึกข้อมูลสมาชิก จำนวน 4 คอลันน์ ประกอบด้วย 

Member ID   text เป็น key หลัก ค่าเริ่มต้น initial ใส่ uniqeid()

Member name   text ข้อความ 

Mphone    phone 

Date register    date วันที่ 


การสร้างวิวหรือ มุมมอง UX

จำนวน 4 มุมมอง    คือ 

หมวดหมู่ 

หนังสือ

ยืมหนังสือ

สมาชิก


ขั้นตอนและวิธีการสร้าง สามารถชมได้จากคลิปวีดีโอ ครับ 


การบันทึกข้อมูลสมาชิก ข้อมูลหนังสือ การจัดกลุ่มการแสดงผล 


จบ ep2 ไปตามต่อ ep3 สร้าง action และ bot มาติดตามสถานะ การยืมและการคืนหนังสือ 





วิธีสร้างแอพจัดการหนังสือที่บ้านด้วยตนเอง EP1

 สำหรับบทความแนว How to ในวันนี้แอดมินจะมาเอาใจพิเศษคนรักหนังสือ หรือชอบสะสมหนังสือ โดยจะมาสอนวิธีการสร้างแอพจัดการข้อมูลหนังสือที่บ้าน หรือสำนักงานขนาดเล็กๆ ด้วยตนเอง 

โดยใช้โปรแกรม Appsheet และฐานข้อมูล Google drive 

ตามแนวคิดหรือ concept ของแอพ เน้นที่ประสิทธิภาพและความง่ายในการใช้งาน 

โดยจะแบ่งออกเป็น 3 ตอนด้วยกัน คือ 

  • สร้างฐานข้อมูลด้วย Google Sheet 
  • สร้างแอพจัดการหนังสือด้วย  Appsheet 
  • การสร้างระบบงาน workflow เพื่อตรวจสอบสถานะการยืมและส่งคืนหนังสือ 


ขั้นตอนแรก เริ่มจากการออกแบบตารางฐานข้อมูล 3 ตาราง คือ Books , Borrowed , และ Members 

โดยที่ตาราง Books บันทึกข้อมูลหนังสือ จะมี 6 คอลัมน์ ได้ แก่ 

Book ID

Book title 

Book cover 

Book cate

Book author 

Book status

 

ตาราง Borrowed บันทึกข้อมูลการยิมหนังสือ จำนวน 7 คอลัมน์ ได้แก่ 

Borrow ID

Book ID

Member ID

Date start

Date end

Date return

Borrow status


ตาราง Members บันทึกข้อมูลสมาชิก จำนวน 4 คอลันน์ ประกอบด้วย 

Member ID

Member name

Mphone

Date register





ep4 การส่งข้อมูลของแบบฟอร์ม

 ในตอนนี้เราจะมาฝึกเขียนโค้ดคำสั่งจัดการข้อมูลของฟอร์มกัน 

ซึ่งภาษา PHP จะมีตัวแปรชนิด superglobal ที่สามารถเรียกใช้งาน 2 วิธีคือ $_GET กับ S_POST 

โดยทั้งสองตัวแปร จะมีหน้าที่สำหรับการ รวบรวมข้อมูลหรือ data collect จากแบบฟอร์ม   

เราสามารถใช้ได้ทั้งแบบ get และแบบ post สำหรับ บทความนี้เราจะมาฝึกใช้งานตัวแปร Post กัน 

โดยใช้แท็ก <form action="ชื่อไฟล์" method="POST">

สร้างไฟล์ ชื่อ register_show.php

ในแท็กพื้นฐาน 

<html>

<body>

Name <?php   echo $_POST ["Firstname"]; ?> <br>

ข้อความแสดงด้านหน้ากำกับคล้าย label จากนั้น เปิดด้วยแท็ก coding ภาษา PHP แล้ว ใช้คำสั่งแสดงข้อมูลหรือ echo รับค่าจากฟอร์ม 

ทำต่อในคอลัมน์ต่อไปตามลำดับ จนครบ แล้วลองทดสอบผลการทำงาน

Last name

Phone 

Class 

</body>

</html>

เริ่มต้นเขียนภาษา PHP ด้วยตนเอง EP3 การสร้างฟอร์ม

 ตอนที่สาม เราจะมาสร้างฟอร์มสำหรับให้ คนกรอกข้อมูลที่เราต้องการจัดเก็บ กรอกเข้ามากัน 

แท็กแรกของฟอร์ม 

<form>


..... ใส่ส่วนต่างๆของแบบฟอร์ม เช่น ข้อความให้กรอก ตัวเลือกให้คลิก และคำสั่งให้เริ่มการทำงาน 

</form>


เราเขียนง่ายๆ โดยใช้แท็ก input หรือนำเข้าข้อมูล

เราจะได้รู้จัดชนิดของข้อมูล คือ text หมายถึงข้อความ 

ปุ่ม radio ไม่ใช่วิทยุนะครับ คือปุ่มที่สามารถให้เลือกข้อมูลตามที่เราต้องการได้ 

แท็ก <label>   </lable> สำหรับเขียนป้ายข้อความกำกับ

ปุ่มบันทึกข้อมูล save หรือปุ่ม submit เพื่อให้ code คำสั่งที่เรากำลังเริ่มต้นศึกษา ทำงานหรือ take action ตามที่เราต้องการกัน 

ตามตัวอย่าง เก็บข้อมูล ชื่อแรก first name 

ข้อมูลนามสกุล Lastname

ข้อมูลหมายเลขโทรศัพท์ phone

และข้อมูลระดับชั้นการเรียน class



<form>
  <label for="Firstname"> Firstname:</label><br>
<input type="text" id="Firstname" name="Firstname"><br>
<label for="Lasttname"> Lastname:</label><br>
<input type="text" id="Lastname" name="Lastname"><br>
<label for="phone"> phone:</label><br>
<input type="text" id="Phone" name="Phone"><br>
<input type="radio" id="A1" name="class" value="อนุบาล 1">
<label for="A1"> อนุบาล1:</label><br>
<input type="radio" id="A2" name="class" value="อนุบาล 2">
<label for="A2"> อนุบาล2:</label><br>
<input type="radio" id="A3" name="class" value="อนุบาล 3">
<label for="A3"> อนุบาล3:</label><br>
<input type="submit" value="Submit"><br>


</form>



เมื่อจบบทนี้ เราควรได้รู้จักวิธีการสร้างแบบฟอร์มพื้นฐานที่สุดกัน เพื่อนำไปต่อยอด ความรู้และฝึกฝนเพิ่มเติมในโอกาสหน้า 



การสร้างฐานข้อมูล PHPMYADMIN

 หลังจากติดตั้งโปรแกรมจำลองการใช้งานผ่านเว็บหรือ Browser อย่าง XAMPP กันแล้ว 

มาดูขั้นตอนและวิธีการสร้างฐานข้อมูลกัน ไปที่โปรแกรมท่องเน็ตอย่าง Chrome แล้วพิมพ์ 

localhost/ ลงไปแล้ว enter

คลิกไปที่ phpmyadmin 

คลิก new 

ระบุชื่อฐานข้อมูล ลงไปเช่น myDB 

จากนั้นคลิกคำสั่ง  Create 


ขั้นต่อมาให้เราสร้างตารางขึ้นมาใหม่ โดยใช้วิธีคลิกที่ sql 

ฝึกการสร้างตารางขึ้นมาใช้งาน ตามคำสั่งเป็น 



สร้างตารางชื่อ students

Create tabel Students (


    id int(11),
    Firstname varchar(255),
    Lastname varchar(255),
    phone varchar(10),

);

มีคอลัมน์ id ชนิดข้อมูลเป็นตัวเลข ความยาว 11 ตัว

Firsrtname ชนิดข้อมูลเป็น ข้อความ ความยาว 255




เริ่มต้นเขียนภาษา PHP ด้วยตนเอง EP1 การ Connect

 การ Connect ฐานข้อมูลเป็น Code แรกที่เราจะเริ่มต้นเขียนกัน หรือจะ copy ไปวางก็ได้ แต่ควรอ่านและทำความเข้าใจ ในภาพรวมๆ 

เริ่มตั้งแต่การสร้างแท็กภาษา PHP

การกำหนดค่าตัวแปรขึ้นมาใช้งาน ในการเชื่อมต่อฐานข้อมูล phpmyadmin

การเขียน code ดักจับควาผิดพลาดการ connect ให้แสดงข้อความผิดพลาด หรือทำงานสำเร็จ 

และการรัน test ทดสอบการทำงานของ code


<?php
$servername = "localhost" ;
$username = "root" ;
$password = "" ;

try {
$conn=new PDO("mysql:host=$servername;dbname=myDB", $username,$password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch (PDOException $e) {
echo "Connetion failed:" .$e->getMessage();

}
?>



สอนทำแอพบันทึกข้อมูลการเช่ารถด้วย Appsheet

สูตรที่ใช้งาน 

ตาราง car inventory 

คอลัมน์ จำลอง current stock 

SUM(

SELECT(

Stock in[QTY],

[item code] = [_THISROW].[item code]

)) - 

SUM(

SELECT(

Stock out[QTY],

[item code] = [_THISROW].[item code]

)) + 

[Available stock]


ตารางส่งคืนรถ car in

คอลัมน์ item name 

Any(select(car inventory[item name],[_THISROW].[item code]=[item code]))

คอลัมน์ unit price

Any(select(car inventory[unit price],[_THISROW].[item code]=[item code]))

คอลัมน์ Amount 

[unit price]*[QTY]

สร้างคอลัมน์จำลอง 2 คอลัมน์ 

คอลัมน์ Available stock

Any(Select(car inventory[Available stock],[_THISROW].[item code]=[item code]))

คอลัมน์  New available stock

[Available Stock]-[QTY]



ตารางให้เช่ารถ car out

คอลัมน์ item name 

Any(select(car inventory[item name],[_THISROW].[item code]=[item code]))

คอลัมน์ unit price

Any(select(car inventory[unit price],[_THISROW].[item code]=[item code]))

คอลัมน์ Amount 

[unit price]*[QTY]

สร้างคอลัมน์จำลอง 2 คอลัมน์ 

คอลัมน์ Available stock

Any(Select(car inventory[Available stock],[_THISROW].[item code]=[item code]))

คอลัมน์  New available stock

[Available Stock]-[QTY]


ตาราง car in form

คอลัมน์ Receipt No

ค่าเริ่มต้นระบุเป็น randbetween(10000,100000)

เพิ่ม 2 คอลัมน์จำลอง 

คอลัมน์ car in 

ref_rows("car in","Receipt No")

คอลัมน์ Total amount

Sum(Select(car in[Amount],[_THISROW].[Receipt No]=[Receipt No]))


ตาราง car out form

คอลัมน์ Receipt No

ค่าเริ่มต้นระบุเป็น randbetween(10000,100000)

เพิ่ม 2 คอลัมน์จำลอง 

คอลัมน์ car out 

ref_rows("car out","Receipt No")

คอลัมน์ Total amount

Sum(Select(car out[Amount],[_THISROW].[Receipt No]=[Receipt No]))


การสร้าง view ในส่วนของหน้าจอหลัก Main navigation จำนวน วิวหลักคือ 

car inventory  แหล่งตาราง car inventory  มุมมอง Desk


car in   แหล่งตาราง car in form       มุมมอง form

finish view เป็น car in form_detail

car out   แหล่งตาราง car out form   มุมมอง form

finish view เป็น car out  form_detail


ทดสอบ แก้ไข และปรับเพิ่ม ตามต้องการ 


ตาราง car in และตาราง car out 

คอลัมน์ item code ไปที่ data validity >valid if

ใส่สูตร select(car inventory[item code],true)


ทดสอบการใช้งานแอพ ในเรื่องการบันทึกเช่ารถ และคืนรถ 

พบ error นิดหน่อย

แก้ไข โดยไปที่ตารางชื่อว่า car in form กับ car out form 

กำหนดคีย์หลักตารางเป็น receipt no

และลาเบลเป็น customer Name