งานมอบหมาย การโปรแกรมพีเอชพี
Northwind | Login | Traing49 | Training492 | PHP5 | HTML | Responsive | Web2 | Kahoot | PHP7 | Assignment
งานมอบหมาย PHP

พีเอชพี คือ ภาษาคอมพิวเตอร์ประเภทโอเพนท์ซอร์ท สำหรับพัฒนาเว็บเพจแบบไดนามิก เมื่อเครื่องบริการได้รับคำร้องจากผู้ใช้ก็จะส่งให้กับ ตัวแปลภาษา ทำหน้าที่ประมวลผลและส่งข้อมูลกลับไปยังเครื่องของผู้ใช้ที่ร้องขอ ในรูปเอชทีเอ็มแอล ภาพ หรือแฟ้มดิจิทอลอื่นใด ลักษณะของภาษามีรากฐานคำสั่งมาจากภาษาซี เป็นภาษาที่สามารถพัฒนาให้ใช้งานแบบโต้ตอบกับผู้ใช้ได้

งานมอบหมาย (Assignment) หมายถึง การสั่งงานให้นิสิต/นักศึกษา/นักเรียน/ผู้เรียนรู้ ได้ฝึกปฏิบัติด้วยตนเอง เป็นวิธีหนึ่งในการพัฒนาทักษะของผู้เรียน งานมอบหมายที่ใช้เวลาค้นคว้า เรียนรู้ ปฏิบัติ ไม่นานนัก และทำที่บ้าน เรียกว่า การบ้าน ถ้าเป็นงานมอบหมายที่ต้องดำเนินการอย่างเป็นระบบ ใช้เวลาระยะหนึ่ง ลองผิดลองถูก ปรับปรุงแก้ไขพัฒนา เรียกว่า โครงงาน สำหรับงานมอบหมาย/การบ้าน/โครงงาน มักต้องใช้หลักการแนวทางที่ได้จากในห้องเรียน ต่อยอด หรือค้นคว้าเพิ่มเติม ที่มีท้าทายความสามารถมากพอ จนต้องใช้เวลาระยะหนึ่งในการฝึกฝน ค้นคว้า จนสำเร็จ เกิดทักษะตามวัตถุประสงค์ที่กำหนดไว้

การบ้าน หรือโครงงาน (Project) หมายถึง งานที่ต้องกลับไปทำที่บ้าน หากเป็นโครงงานก็จะใช้เวลาทำอย่างต่อเนื่องเป็นระยะเวลาหนึ่ง อาจใช้เวลาเป็นสัปดาห์ เป็นเดือน เป็นภาคการศึกษา หรือเป็นปีการศึกษา งานมอบหมายอาจมีทั้งงานกลุ่ม และงานเดี่ยว ซึ่งแตกต่างกันไปตามเนื้องาน และวัตถุประสงค์ของงาน งานกลุ่ม คือ งานที่ในทีมมีหน้าที่แตกต่างกัน เรียนรู้การทำงานร่วมกัน ปริมาณงานต้องมากพอ หรือมากเกินกว่าคนเดียวจะทำได้สำเร็จ งานเดี่ยว คือ งานที่ต้องเข้าใจกระบวนการทำงานตั้งแต่ต้นจนจบเพียงผู้เดียว ประมาณงานไม่มากเกินความสามารถที่คนเดียวจะทำได้สำเร็จ

Coding : การเรียนการสอนเกี่ยวกับคอมพิวเตอร์ ถูกยกระดับการให้ความสำคัญโดยกระทรวงศึกษาธิการ ปี 2562 มีนโยบายเรื่อง Coding ของ คุณหญิงกัลยา โสภณพนิช รัฐมนตรีช่วยว่าการกระทรวงศึกษาธิการ ว่า "Coding ไม่ให้เด็กไทยถูกทิ้งไว้ข้างหลัง ลดความเหลื่อมล้ำด้วยการศึกษา" ซึ่งสัมพันธ์กับการเรียนการสอนใน ระดับอุดมศึกษา วิชาวิทยาการคอมพิวเตอร์ และระดับมัธยมศึกษา วิชาวิทยาการคำนวณ

มัธยม
:: ประถม

งานออกแบบ Requirement ถ้าท่านต้องพัฒนาเว็บไซต์ และระบบฐานข้อมูลออนไลน์ให้กับองค์กร ท่านจะมีขั้นตอนดำเนินการอย่างไร อธิบายมาโดยละเอียดตามวงจรการพัฒนาระบบ (SDLC) แล้วเสนอแผนการจัดการโครงการ (Project Management) ด้วย แผนภูมิแกนต์ (Gantt chart) ของ Henry Gantt ในปี ค.ศ. 1917 โดยมีรายละเอียดลำดับ ชื่อกิจกรรม ระยะเวลา อุปกรณ์ งบประมาณ ผู้รับผิดชอบ ที่แบ่งกิจกรรมได้เป็น 4 ขั้นตอน คือ 1) Project Initiation 2) Project Planning 3) Project Execution และ 4) Project Closure
งาน 36 พีระมิด ส่งเข้า github.com

ใน Chrome
งเขียนโปรแกรมแสดง "36 พีระมิดของตัวเลข" ด้วยภาษา PHP ใช้ตัวอย่างใน teachpro.htm
ถ้านิสิตชื่อ cherprang ให้ใช้คำว่า cherprang ในชื่อโปรแกรม มีตัวเรียก cherprang_all.php เพื่อลิงค์ไปยัง cherprang_01.php ถึง cherprang_36.php มีตัวแปรชื่อ cherprang ใน source code เพื่อเรียกพีระมิด งานละ 1 โปรแกรม ที่ใช้ for ซ้อน for
ใช้ TLWGTypewriter ทำให้ตัวเลขเป็น Monospace
ให้ส่งเข้า repository ชื่อ php_pyramid ใน github.com แล้วแชร์ลิงค์มาในกลุ่มของวิชา
- ภาษา PHP, Java ใช้ echo 7 % 3;
- ภาษา VB ใช้ Console.WriteLine(7 mod 3)
ทบทวน Free webhosting 1. คัดลอก 9116 : mysql_working.php
ไปทดสอบ run ใน xampp
2. Free webhosting (thaiall.com/blog/burin/8834/)
โครงงานระบบสั่งซื้อบริษัท Northwind
เกริ่นนำ

ะบบฐานข้อมูลจำลองใน Microsoft Access มี ระบบฐานข้อมูล Northwind ที่มี 8 ตาราง เป็นระบบที่มีความสมบูรณ์ และสมจริง มีความสัมพันธ์ของตารางแบบ one to many ที่เข้าใจได้ง่าย การเรียนรู้ความสัมพันธ์ของตารางให้เข้าใจ และประยุกต์ใช้เพื่อการเรียนรู้การเขียนโปรแกรม (Coding) ด้วยภาษา PHP และใช้งาน SQL Command สั่งงานระบบฐานข้อมูล MySQL ทำให้เห็นภาพการประยุกต์ใช้ได้ง่าย การเชื่อมต่อกับระบบ menu และ signin ของ Bootstrap ทำให้การพัฒนาเป็นระบบมีความน่าสนใจ และส่งเสริมการเรียนรู้ของผู้เรียนได้อย่างเป็นระบบ พร้อมกับการแบ่งปัน Source code ผ่าน github.com

วัตถุประสงค์
1. เพื่อฝึกออกแบบและพัฒนาระบบงาน
2. เพื่อฝึกการเขียนโปรแกรม
3. เพื่อฝึกจัดการระบบฐานข้อมูล
4. เพื่อฝึกใช้ Library จากภายนอก
northwind_assignment.jpg
โครงงานปลายภาค ปูพื้นฐาน "เดฟสายเว็บ" ปรับปรุง 2 ส.ค.64
1. ระบบ Sign in และ Sign out
+ ตรวจสอบความเป็นสมาชิกก่อนเข้าใช้งานระบบ จึงต้องมีตาราง members
+ แบ่งประเภทเป็น admin และ user ซึ่งต้องใช้ Session / Cookie และ Bootstrap
http://www.thaiall.com/adminlte-3.0.4/
2. ระบบ Members
+ สามารถ insert, delete, update : members
+ จัดการข้อมูลได้เฉพาะ admin ส่วน user อนุญาตให้ select ได้เท่านั้น
3. ระบบ Northwind (8 ตาราง)
+ สามารถ select, insert, delete, update ได้ทุกตาราง
http://www.thaiall.com/project/projectdbnwind.htm
https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all
4. ระบบ Menu
+ เป็น Top menu หรือ Left menu
+ ซึ่ง Menu ของ admin กับ user จะต่างกันไป
5. เพิ่ม Plug-in (Library)
+ API หรือ Javascript
http://www.thaiall.com/jslibrary
+ ระบบจัดการข้อมูล s0 - s7 เพื่อจัดการ 8 ตารางของ Northwind
+ pyramid ทั้ง 36 โปรแกรม
http://www.thaiall.com/article/teachpro.htm
http://www.thaiall.com/php/training49.htm
+ โดยตรวจสอบสิทธิ์ของผู้ใช้ ซึ่งต้องเป็น admin จึงจะใช้งานได้
+ มี Header & Footer อย่างสวยงามทุกหน้า
6. ระบบสั่งซื้อตัดยอดสินค้า (Order และ Order Details)
+ เป็นฟอร์มที่ทำงานร่วมกันระหว่าง orders กับ order details ได้
+ ตัด stock ใน products ได้ (UnitsInStock)
7. ระบบ Session หรือ Temporary ระหว่างการสั่งซื้อ
+ มีการกรอกข้อมูลในฟอร์ม เพื่อสั่งซื้อได้ แต่ไม่นำข้อมูลเข้าทันที
+ อาจใช้ session / cookie หรือ temporary table มารับข้อมูลส่วนนี้
หรือใช้ technique อื่นได้ แต่ต้องอธิบายว่าทดแทนกันได้อย่างเข้าใจ
thaicreate.com/..free-web-script/php-shopping-cart-session-array
http://www.thaiall.com/php/training492.htm
8. ระบบ Data Verification หรือ Checking (ตรวจสอบข้อมูล)
+ มีระบบนี้ไม่น้อยกว่า 3 ฟอร์ม (ไม่ซ้ำรูปแบบ)
+ ลบ product ได้ แต่ต้องตรวจว่าไม่มีรายการใน order details
+ ลบ supplier ได้ แต่ต้องไม่มีรายการใน products
+ ลบ customer ได้ แต่ต้องไม่มีรายการใน orders
+ เปลี่ยนรหัส CategoryID ได้ แต่ต้องไปเปลี่ยนใน products ทั้งหมด
+ เปลี่ยน price ได้ แต่ต้องไม่มีรหัสสินค้าใน order details
9. ระบบ relation ด้วย union หรือ inner join กัน 2 - 3 ตาราง
+ มีการเชื่อมกันไม่น้อยกว่า 3 รายงาน (ไม่ซ้ำ)
+ ตัวอย่าง select 19 แบบ หรือ /php หรือ /mysql
github.com/thaiall/programming-page/../northwind.php
10. มีรายงานที่ใช้ group by และ order by
+ ไม่น้อยกว่า 3 รายงาน (ไม่ซ้ำ)
+ ตัวอย่าง select 19 แบบ
http://www.thaiall.com/perlphpasp/source.pl?9141
11. มีรายงานเลือกตามช่วงข้อมูลได้
+ ไม่น้อยกว่า 3 รายงาน (ไม่ซ้ำ)
+ เช่น ช่วงวันที่ ช่วงเดือน หรือช่วงเลขที่ใบสั่งซื้อ
+ เช่น if(a > x1 && a <= x2) { } หรือ where ใน sql
12. Header และ Footer มีในทุกรายงาน
+ โดยเฉพาะตามข้อ 9 - 11 ที่ include หรือ require เข้าไป
+ เชื่อม social media และผลงานอื่น ๆ
13. ใช้ Ajax และ Javascript และ Bootstrap
+ ประกอบในการพัฒนาระบบอย่างเหมาะสม
+ เช่น การช่วยตรวจสอบรหัสผ่านที่ซับซ้อน
+ เช่น Responsive Web Design
http://www.thaiall.com/ajax
http://www.thaiall.com/java/
http://www.thaiall.com/java/bootstrap.htm
14. งานทั้งหมดใน github.com
+ มี Source code, Powerpoint แชร์ใน github.com
+ ทำงานได้จริงใน Free webhosting 2 - 3 ตัว
https://www.thaiall.com/blog/burin/8834/
15. จัดทำ MS Powerpoint
เพื่อนำเสนอหน้าชั้นอย่างมืออาชีพ
- วัตถุประสงค์การพัฒนา
- นโยบายตามแนวการเขียน DFD
- โครงสร้างแฟ้ม หรือ ER
- ตัวอย่างหน้าจอภาพ อย่างน้อยครบทุกระบบ
- ไซต์ผลงาน
ตัวอย่างข้อสอบ – ปฏิบัติรับบุคลากรเข้าทำงาน (ให้เพื่อน) ตัวอย่างข้อสอบสำหรับคัดเลือกเว็บมาสเตอร์เข้าทำงาน ให้แสดงผลงาน หรือประสบการณ์ ด้วยการนำเสนอเป็นแผนภาพผ่าน Powerpoint และปฏิบัติจริง แบ่งข้อสอบเป็น 2 ข้อ ๆ ละ 50%
1. จงทำ Powerpoint นำเสนอผลงาน หรือประสบการณ์
- ขั้นตอนการติดตั้ง การเขียน Web page ด้วย PHP / Framework เชื่อม Database (SQL, noSQL)
- ขั้นตอนการติดตั้ง CMS เช่น Wordpress, Joomla, Moodle, Drupal, phpBB
- ผลงาน Graphic ที่เคยทำมา เช่น Poster, Infographic, Document, Research, Paper
- ผลงานคลิ๊ปใน Youtube หรือ Social media
2. จงติดตั้ง Web server
- เขียน Web page อย่างง่าย จำนวน 3 หน้าที่เชื่อมโยงกัน
- แสดงการ select ข้อมูลจาก 2 ตารางที่เชื่อมกันมาแสดงใน webpage
Northwind.php : 19 select
แหล่งค้นคว้าเพิ่มเติม
1. โครงสร้างแฟ้มระบบฐานข้อมูล Northwind
2. /MySQL
3. Pyramid ทั้ง 36 โปรแกรม
4. รวม Source code
5. Github.com/thaiall
6. ตัวอย่าง Select 19 แบบ ใน Github
7. ทดสอบ Bootstrap + table ใน w3schools.com
8. /Ajax
9. /Javascript
10. แนะนำ 10 Free webhosting (ไม่รวม Infinityfree.com)
11. Responsive
12. /Web2 (joom.htm)
13. Bootstrap + Bootsnipp.com : Login Form
14. Lightbox
15. Menu : Marry.htm + marry_menu.htm + Blank_menu.htm
16. /Human-Computer Interaction
17. /Webmaster
18. /Laravel
19. /Reactnative
20. /Line (Notification)
21. /VScode
stackoverflow.com
Facebook : สมาคมโปรแกรมเมอร์ไทย : 64518
ประเด็นชวนคิด ย้อนดูตน
1. สยบฟ้าพิชิตปฐพี
ฝันให้ไกล แล้วไปให้ถึง แต่ต้องเป็นจริง
2. พรสวรรค์ กับพรแสวง
อย่ารอราชรถมาเกย เท่านั้นเอง
3. สิ่งหวงแหน ของ หนิงเชวีย
ต้องหวงแหนที่สุดคือตน คอม ผลงาน ก็ใช่
4. ชีวิตคือการต่อสู้ และชนะในที่สุด
อย่าสู้โดยสูญเปล่า และสู้เมื่อพร้อม
5. การเลือกโม่ซันซัน หรือซังซัง
เลือกตามหลักวิชาการ อย่าเลือกตามหัวใจ
6. ศิษย์หลังเขาคนที่ 13 บนชั้น 2
Who am i? เป็นมาได้อย่างไร
7. วิชา ระดับ อาวุธ ทักษะ
เรียนรู้ที่จะมี และเชี่ยวชาญ ชำนาญการ
8. เป้าหมายของหนิงเชวีย
เป้าคือ เกษียณก็ไกลไป ใกล้ ๆ นี้ก่อน
Sign in
ระบบความปลอดภัย ที่ให้ผู้ใช้ที่ได้รับสิทธิ์ แล้วเข้ายืนยันตัวตนได้หลายวิธี เพื่อเข้าใช้งาน และออกระบบเมื่อเลิกใช้งาน
Login
ระบบความปลอดภัย ที่ยืนยันตัวตนของผู้ใช้ บันทึกกิจกรรมการใช้งานระบบย่อยที่ได้รับสิทธิ์ และตรวจสอบย้อนหลังได้
Logout
ระบบความปลอดภัย ที่แสดงตนว่าออกจากระบบ ยุติการใช้งาน เพื่อเปลี่ยนผู้ใช้ ล้างข้อมูล บันทึกการสิ้นสุดกิจกรรมนั้น
Sign up
ระบบเพิ่มข้อมูลสมาชิกใหม่ที่สร้างบัญชี แล้วอนุญาตให้ผู้ใช้สามารถเข้าใช้ทรัพยากร มีพื้นที่ใช้งาน และสิทธิ์เฉพาะตน
ระบบ login อย่างง่ายด้วยภาษา php
/* 
ระบบ login
http://www.thaiall.com/perlphpasp/source.pl?9116 - mysqlworking.php สร้างตาราง car มี 27 เขตข้อมูล
http://www.thaiall.com/perlphpasp/source.pl?9137 - mysql_update.php การจัดการข้อมูลอย่างง่าย
http://www.thaiall.com/blog/burin/9014/ - ตัวอย่างเมนูแบบต่าง ๆ
https://bootsnipp.com/tags/login - ตัวอย่างฟอร์ม login สวย ๆ 

create table members (
id int not null auto_increment,  
user varchar(20), 
passwd varchar(20), 
fullname varchar(40), 
stat int, 
primary key(id));

1. select.php
ตารางชื่อ car - f1 ถึง f27 แล้วแสดงเฉพาะเขตข้อมูล f1
<?php
$connect = new mysqli("localhost","root","","mysql");
$query = "select * from car"; 
$result = $connect->query($query); 
while ($o = $result->fetch_object()) {
echo $o->f1 . "<br/>";
}
$connect->close();
?>

2. form.htm
<form action=signin.php method=get>
<input name=u><input name=p>
<input type=submit>
</form>

3. signin.php
<?php 
session_start();
if($_GET["u"] == 1 && $_GET["p"] == 2) {
	$_SESSION["u"] = "1";
 	echo "<a href=page1.php>page1</a>";
} else {
	header("location: form.htm");
}
?>

4. page1.php : album, github
<?php
session_start();
if(!isset($_SESSION["u"]) || strlen($_SESSION["u"]) == 0) {
	header("location: form.htm");
	exit;
} ?>
Hello world
	<a href=signout.php>signout</a>

5. page2.php : pyramid, wordpress, blogger, youtube

6. signout.php
<?php
session_start();
$_SESSION["u"] ="";
unset($_SESSION["u"]);
header("location: form.htm");
?>

7. signin.php
<?php session_start();
$connect = new mysqli("localhost","root","","mysql");
$query = "select * from car where
f1='" . $_GET["u"] . "' and f2 = '" . $_GET["p"] . "'"; 
$result = $connect->query($query); 
if ($o = $result->fetch_object()) {
	$_SESSION["u"] = $o->f1;
 	echo "<a href=page1.php>page1</a>";
} else {
	header("Location: form.htm");
}
$connect->close();
?>

https://bootsnipp.com/tags/login 

if(isset($_SESSION["id"]) && $_SESSION["id"] == "1") { echo "ok"; } else { 
echo '<meta http-equiv="refresh" content="0;url=http://www.yourdomain.com">';
}

header("Location: http://www.example.com/");
exit;

s0 - s8 : "7. พีเอชพี และมายเอสคิวแอล (PHP & MySQL)" - https://www.thaiall.com/php/training49.htm
*/
งานมอบหมาย : ระบบ Sign in และ Sign out
/*
1. จงสร้างหน้า Login รับรหัสผู้ใช้ และรหัสผ่าน
เพื่อนำไปตรวจสอบกับระบบฐานข้อมูลว่ามีตัวตนหรือไม่
ก่อนอนุญาตให้เข้าใช้งานระบบ ซึ่งหน้า Login มีตัวอย่างฟอร์มให้เลือก
จาก https://bootsnipp.com/tags/login หรือ
https://www.thaiall.com/adminlte-3.0.4/pages/forms/general.html

2. จงสร้างระบบสมาชิก ที่ประกอบด้วยสร้างผู้ใช้คนใหม่ ลบผู้ใช้ แก้ไขข้อมูล และแสดงรายชื่อ
บน xampp7 + mysql 

3. จงสร้างระบบเมนู ที่มีตัวเลือกอย่างน้อย 5 ตัวเลือก ได้แก่ 
  Pyramid 36 แบบ ด้วยภาษาที่ถนัด เช่น php , java หรือ javascript
    https://www.thaiall.com/article/teachpro.htm 
  s0 - s8 : "7. พีเอชพี และมายเอสคิวแอล (PHP & MySQL)" 
    https://www.thaiall.com/php/training49.htm
  Members : 
    https://www.thaiall.com/perlphpasp/source.pl?key=9121
  เลือก 2 social media : Facebook, Youtube, Twitter, Instagram, Tiktok, Github, Wordpress

4. แยกเมนูตามระดับของผู้ใช้ คือ admin และ user
  โดยควบคุมการแสดงตัวเลือก รูปแบบเว็บเพจ ข้อมูลการเข้าใจของผู้ใช้
  ตัวอย่างคำสั่ง session_start(); $_SESSION["utype"];

5. จงผลงานย้ายไปบน Free webhosting ที่บริการ PHP และ MySQL
  เช่น 000webhost.com, 5gbfree.com , byet.host , awardspace.com หรือบน Smart phone
  https://www.thaiall.com/blog/burin/8834/ - เล่าเรื่องฟรีเว็บโฮสติ้ง
*/
rspsocial
Thaiall.com