|
| 1 |
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 | |
|
|
|
|
|
|
|
การบ้านวิชา CY623...ของ น.ส.พัชรัตน์ เอกทัศน์ ข้อ3
3. พัฒนาโปรแกรม PHP 1 โปรแกรม เพื่อให้ความรู้ด้านสุขภาพ กับประชาชน 3.1 จะต้องมี flow การทำงานของโปรแกรม 3.2 มี comment การทำงานของโปรแกรม ไม่น้อยกว่า 50% ของจำนวนบรรทัดโปรแกรมทั้งหมด เป็นภาษาไทย ตัวอย่างเช่น pregnancy.php แต่ต้องมีการโต้ตอบกับคนเข้ามาดูได้ และเก็บข้อมูลคนที่เข้ามาดูแล้ว ที่กำลังท้องอยู่ เพื่อครั้งหน้า เข้ามาดูอีก จะได้ต่อเนื่องกับครั้งที่ผ่านมา 3.3 ถ้าจะทำเป็นกลุ่ม ไม่ให้เกินกลุ่มละ 4 คน และต้องมีการแจ้งก่อนว่า ใคนในกลุ่มคนไหน ทำส่วนใด
รายชื่อผู้จัดทำโปรแกรมBMI
1.นายเกษตร อยู่ดี จัดทำส่วนของ HTML ทั้งหมด 2.นางสาวกมลมาศ ศิริรักษ์ จัดทำส่วนของโปรแกรมการคำนวน(CalOnly.php) BMI ที่เป็น PHP 3.นางสาวพัชรัตน์ เอกทัศน์ จัดทำส่วนของโปรแกรมการลงทะเบียนของสมาชิกใหม่-เก่า(Member.php,NewMember.php)
Code : HTML หน้า mainpage.html
โปรแกรมคำนวณ ค่า BMI พร้อมเก็บข้อมูลไว้ในฐานข้อมูล
โปรดเลือกตัวเลือก
<
code : HTML ของโปรแกรม CalOnly.php
โปรดเติมข้อมูลของท่าน
< code : PHP ของโปรแกรม CalOnly.php //ป้องกันตัวหารเป็น 0(เนื่องจากการหารจำนวนใดๆหากตัวหารเป็น 0 จะทำให้ข้อมูลผิดพลาด) if( $H==0) { $W=0; $H=1; } //เริ่มคำนวณค่า BMIโดยใช้สูตรคำนวน คือ BMI(Body Mass Index)=Weight(นํ้าหนัก คิดเป็นกิโลกรัม)/(Height*Height)โดยส่วนสูงนี้ทำเป็นเมตรก่อนแล้วจึงนำมาคำนวน $BMI=$W/(($H/100)*($H/100)); //ทำให้เหลือทศนิยม 2 ตำแหน่ง โดยใช้ function round() $BMI = round($BMI,2); //แสดงค่าBMI ที่โปรแกรมคำนวนได้โดยผลลัพธ์ของBMI จะแสดงเป็นทศนิยม 2 ตำแหน่งเท่านั้น print "ค่าดัชนีมวลของร่างกายของคุณ คือ " . $BMI . "
"; //วิเคราะห์ค่าBMI โดยอ้างอิงจากตารางเปรียบเทียบ BMI ขององค์การอนามัยโลก WHO //ถ้าหาก BMI น้อยกว่าหรือเท่ากับ 19 แสดงว่า user มีนํ้าหนักน้อยเกินไปซึ่งจะแนะนำให้เพิ่มนํ้าหนักตัวมากกว่านี้ if( $BMI <= 19) { print "Oh no!! คุณผอมมาก ควรเพิ่มนำหนักมากกว่านี้ครับ "; } //ถ้าหาก BMI มีค่ามากกว่า 19 แต่น้อยกว่า 24 แสดงว่า userมีนํ้าหนักตัวพอดีสมดุลกับส่วนสูงซึ่งจะแนะนำให้รักษาหุ่นระดับนี้ต่อไป if($BMI >19 && $BMI < 24) { print "Oh !! พระเจ้า george, คุณกำลังหุ่นดีเลยนะเนี่ย,อย่าให้อ้วนกว่านี้นะ "; } //ถ้าหาก BMI มีค่ามากกว่าหรือเท่ากับ 24 แต่น้อยกว่า 29 แสดงว่า user กำลังอ้วนทีเดียว(อวบ,ตุ้ยนุ้ย)ซึ่งจะแนะนำให้ออกกำลังกายอีกซะหน่อยจะได้หุ่นดี if($BMI >=24 && $BMI < 29) { print "ออกกำลังกายมากๆนะน้อง"; } //ถ้าหาก BMI มีค่ามากกว่าหรือเท่ากับ 29 แสดงว่า user มีนํ้าหนักตัวมากเกินไป(จริงๆนะหรือพูดง่ายๆว่าอ้วนสุดๆ)ซึ่งจะแนะนำให้ออกกำลังกายด่วน!!! if($BMI >= 29) { print "ไอ้หมูอ้วนเอ้ย,รีบไปออกกำลังกายซะ...ไม่งั้นจะแย่นะเรา!!"; } print "
"; //สร้างปุ่มเพื่อกลับไปหน้าการคำนวนโดยสามารถ click เพื่อกลับไปเพื่อคำนวนข้อมูลใหม่(CalOnly.html) print "";
?> code : HTML ของโปรแกรม Newmember.HTML
โปรดเติมชื่อและรหัสผ่าน ของผู้ใช้ใหม่
< code : PHP ของโปรแกรม Newmember.php //ในการกรอกข้อมูลสมาชิกใหม่จะมีการกรอกชื่อซึ่งกำหนดให้ใส่ 1-10ตัวอักษร ถ้าเกิดว่าในช่องตารางให้กรอกชื่อ userไม่ได้ทำการใส่ข้อมูลหรืออาจใส่ข้อมูลไม่ถูกต้องโดยอาจเป็นการใส่เกินหรือซํ้ากับคนอื่นโปรแกรมก็จะแจ้งว่า"ช่องผู้ใช้งานยังไม่มีข้อมูล"และจะมีbuttonให้กลับไปยังหน้าของสมาชิกใหม่เพื่อให้เราทำการแก้ไขข้อมูลให้ถูกต้อง if($User == "") { print "ช่องผู้ใช้งาน ยังไม่มีข้อมูล!!
"; print ""; exit(); } //ในการกรอกข้อมูลpasswordจะมีการกรอกรหัสซึ่งกำหนดให้ใส่ 1-10ตัวอักษรถ้าเกิดว่าในช่องตารางที่ให้ใส่passwordไม่ได้ทำการใส่ข้อมูลหรืออาจใส่ข้อมูลไม่ถูกต้องโดยอาจเป็นการใส่เกินหรือซำกับคนอื่นโปรแกรมก็จะแจ้งว่า"รหัสและยืนยันรหัสไม่ตรงกัน"และจะมีbuttonให้กลับไปยังหน้าของสมาชิกใหม่เพื่อให้เราทำการแก้ไขข้อมูลให้ถูกต้อง if($PW != $CPW) { print "รหัส และ ยืนยันรหัส ไม่ตรงกัน!!
"; print ""; exit(); }
//เมื่อขั้นตอนด้านบนokแล้วข้อมูลเรียบร้อยและถูกต้องต่อมาโปรแกรมจะมีการconnectไปยังlocalhost(ซึ่งในที่นี้เราใช้ฐานข้อมูลของMySQLโดยนำมาใช้และเชื่อมต่อกับPHPโดยผ่านโปรแกรมAppServ)โดยมีการใช้ชื่อuserว่า"north"และใช้passwordว่า"S159n205ซึ่งในการติดต่อกับDB(data base)อันนี้เราจะเลือกconnectกับtableที่ชื่อBMI $link = mysql_pconnect("localhost","north","S159n205"); mysql_select_db("BMI_db"); //add value:เมื่อการconnectและการselectDBเรียบร้อยแล้วจะมีการตั้งค่าต่างที่เกิดขึ้นเพื่อสำหรับไปใส่ในtableของDBที่ทำการselectไว้โดยมีการกำหนดให้ค่าของuser=ค่าของnameในtable,ค่าของpassword=ค่าของpasswordในtable $name = $User; $Password = $PW; //จะมีการถาม-ตอบระหว่างกันของDBและจะมีคำสั่งให้นำข้อมูลต่างๆ(name&password)ที่ตั้งค่าไว้มาใส่ไว้ในtableชื่อBMIโดยในครั้งแรกนี้จะมีแต่ข้อมูลของname&ื่อการลงข้อมูลเรียบร้อยโปรแกรมจะแจ้งว่า"ข้อมูลของคุณได้ถูกเก็บในระบบแล้ว" if(mysql_query("INSERT INTO BMI_table SET ". "name='$name'" . ",Password = '$Password'" . ",BMI1='xxxx'" . ",BMI1Date='xxxx'" . ",BMI2='xxxx'" . ",BMI2Date='xxxx'" . ",BMI3='xxxx'" . ",BMI3Date='xxxx'" )) { print "ข้อมูลของคุณได้ถูกเก็บในระบบแล้ว
"; } //ถ้าหากเกิดความผิดพลาดเกิดขึ้น เช่น เปลี่ยนserverแล้วยังไม่มีการสร้างDBเป็นต้น โปรแกรมก็จะแจ้งว่าเกิดการผิดพลาด(Error)ที่ส่วนไหนและจะมีbuttonให้กลับไปใหม่เพื่อให้เราทำการแก้ไขข้อมูลให้ถูกต้อง else { print (mysql_errno() ? "Error no." . mysql_errno() . ":" : "") . mysql_error() . "
"; } print ""; exit(); ?> code : HTML ของโปรแกรม Member.HTML
โปรดเติมข้อมูลของท่าน
< ?> code : PHP ของโปรแกรม Member.HTML //โปรแกรมจะมีการconnectไปยังlocalhost(ซึ่งในที่นี้เราใช้ฐานข้อมูลของMySQLโดยนำมาใช้และเชื่อมต่อกับPHPโดยผ่านโปรแกรมAppServ)โดยมีการใช้ชื่อuserว่า"north"และใช้passwordว่า"S159n205ซึ่งในการติดต่อกับDB(data base)อันนี้เราจะเลือกconnectกับtableที่ชื่อBMI $link = mysql_pconnect("localhost","north","S159n205"); mysql_select_db("BMI_db"); //ต่อมาก็เป็นขั้นตอนในการดึงข้อมูลมาจากฐานข้อมูลซึ่งในการทำงานครั้งนี้มีความจำเป็นต้องดึงค่าหลายๆค่าจากฐานข้อมูลจึงขอใช้คำสั่งSQLที่ระบุชื่อฐานข้อมูลไว้หน้าชื่อtableผ่านไปทางฟังก์ชั่นmysql_query()จะเหมาะสมที่สุด สำหรับฟังก์ชั่นในการเรียกดึงข้อมูลนั้นเราจะใช้ฟังก์ชั่นmysql_fetch_array()ใช้สำหรับดึงข้อมูลจากตัวแปรที่ได้จากฟังก์ชั่นmysql_query()มาเก็บในรูปอาร์เรย์และสามารถอ้างถึงข้อมูลในฟีลด์ได้ด้วยชื่อฟีลด์หรือตัวเลขดัชนี(index)โดยในการเรียกใช้ฟังก์ชั่นmysql_fetch_array()1ครั้งจะดึงมา1เรคอร์ดและตัวชี้จะถูกเลื่อนไปยังเรคอร์ดถัดไปแต่หากไม่สามารถดึงเรคคอร์ดมาได้จะให้ค่าเป็นfalse $ordersresult = mysql_query("SELECT * FROM bmi_table WHERE name='$User'"); $ordersrow = mysql_fetch_array($ordersresult); //เมื่อทำการดดึงข้อมูลมาตรวจสอบแล้วพบว่าข้อมูลชื่อuser(primary key)ไม่ตรงกับpasswordโปรแกรมจะแจ้งว่า"รหัสผ่านหรือชื่อผู้ใช้ไม่ถูกต้อง"และจะมีbuttonให้กลับไปยังหน้าของสมาชิกเก่าเพื่อให้เราทำการแก้ไขข้อมูลให้ถูกต้อง...แต่ถ้าหากตรวจสอบข้อมูลทุกอย่างแล้วถูฏต้องก็จะมีการเข้าสู่โปรแกรมการคำนวนBMIต่อไป $PWindb = $ordersrow[1] ;
if($PW != $PWindb) { print "รหัสผ่านหรือชื่อผู้ใช้ ไม่ถูกต้อง!!
"; print ""; exit(); } //ป้องกันตัวหารเป็น 0(เนื่องจากการหารจำนวนใดๆหากตัวหารเป็น 0 จะทำให้ข้อมูลผิดพลาด) if( $H==0) { $W=0; $H=1; } //เริ่มคำนวณค่า BMIโดยใช้สูตรคำนวน คือ BMI(Body Mass Index)=Weight(นํ้าหนัก คิดเป็นกิโลกรัม)/(Height*Height)โดยส่วนสูงนี้ทำเป็นเมตรก่อนแล้วจึงนำมาคำนวน $BMI=$W/(($H/100)*($H/100)); //ทำให้เหลือทศนิยม 2 ตำแหน่งโดยใช้ function round() $BMI = round($BMI,2); //แสดงค่าBMI ที่โปรแกรมคำนวนได้โดยผลลัพธ์ของBMI จะแสดงเป็นทศนิยม 2 ตำแหน่งเท่านั้น print "สวัสดีครับ ค่าดัชนีมวลของร่างกายของคุณวันนี้ คือ " . $BMI . "
"; //วิเคราะห์ค่าBMI โดยอ้างอิงจากตารางเปรียบเทียบ BMI ขององค์การอนามัยโลก WHO //ถ้าหาก BMI น้อยกว่าหรือเท่ากับ 19 แสดงว่า user มีนํ้าหนักน้อยเกินไปซึ่งจะแนะนำให้เพิ่มนํ้าหนักตัวมากกว่านี้ if( $BMI <= 19) { print "Oh no!! คุณผอมมาก ควรเพิ่มนำหนักมากกว่านี้ครับ
"; } //ถ้าหาก BMI มีค่ามากกว่า 19 แต่น้อยกว่า 24 แสดงว่า userมีนํ้าหนักตัวพอดีสมดุลกับส่วนสูงซึ่งจะแนะนำให้รักษาหุ่นระดับนี้ต่อไป if($BMI >19 && $BMI < 24) { print "Oh !! พระเจ้า george, คุณกำลังหุ่นดีเลยนะเนี่ย
"; } //ถ้าหาก BMI มีค่ามากกว่าหรือเท่ากับ 24 แต่น้อยกว่า 29 แสดงว่า user กำลังอ้วนทีเดียว(อวบ,ตุ้ยนุ้ย)ซึ่งจะแนะนำให้ออกกำลังกายอีกซะหน่อยจะได้หุ่นดี if($BMI >=24 && $BMI < 29) { print "ออกกำลังกายมากๆนะครับ
"; } //ถ้าหาก BMI มีค่ามากกว่าหรือเท่ากับ 29 แสดงว่า user มีนํ้าหนักตัวมากเกินไป(จริงๆนะหรือพูดง่ายๆว่าอ้วนสุดๆ)ซึ่งจะแนะนำให้ออกกำลังกายด่วน!!! if($BMI >= 29) { print "ไอ้หมูอ้วนเอ้ย!!
"; } //เมื่อคำนวนBMIได้แล้วก็จะมีการบันทึกวันที่และเวลาที่เราทำการคำนวนBMIกำกับไว้เป็นBMIครั้งปัจจุบัน(ครั้งล่าสุด) $MyDate = date( "d F y H:i:s"); //ต่อมาก็จะเป็นการกำหนดค่าของวันที่และBMIครั้งก่อนว่าอยู่ที่ตำแหน่งไหนของtable $BMI1Date = $ordersrow[3]; $BMI2Date = $ordersrow[5]; $BMI1 = $ordersrow[2]; $BMI2 = $ordersrow[4]; //ต่อมาก็เป็นขั้นตอนในการแก้ไข(update)ข้อมูลมาจากฐานข้อมูลซึ่งในการทำงานครั้งนี้มีความจำเป็นต้องแก้ไข(update)ค่าหลายๆค่าจากฐานข้อมูลจึงขอใช้คำสั่งSQLที่ระบุชื่อฐานข้อมูลไว้หน้าชื่อtableผ่านไปทางฟังก์ชั่นmysql_query()จะเหมาะสมที่สุด แก้ไข(update)ในบรรทัดนี้นั้นจะมีการจัดเก็บข้อมูลแทนที่กันเนื่องจากเราsetการเก็บฐานข้อมูลไว้3ค่าซึ่งเมื่อข้อมูลทั้งหมดมี4ค่า(รวมBMIปัจจุบันด้วย)ข้อมูลจะมีการจัดเก็บแทนที่กันโดยข้อมูลที่เก่าที่สุดจะถูกดันออกไปนั่นคือ BMIครั้งล่าสุดจะจัดเก็บเป็นข้อมูลที่1,ข้อมูลครั้งที่1ของคราวที่แล้วจะถูกจัดเก็บเป็นข้อมูลที่2 และข้อมูลที่2ของคราวที่แล้วจะจัดเก็บเป็นข้อมูลที่3 ส่วนข้อมูลครั้งที่3ของครั้งที่แล้วจะถูกทิ้งไป (mysql_query("UPDATE bmi_table SET BMI1Date = '$MyDate',BMI2Date = '$BMI1Date',BMI3Date = '$BMI2Date' WHERE name='$User'")); (mysql_query("UPDATE bmi_table SET BMI1 = '$BMI',BMI2 = '$BMI1',BMI3 = '$BMI2' WHERE name='$User'")); //ต่อมาก็เป็นขั้นตอนในการดึงข้อมูลมาจากฐานข้อมูลซึ่งในการทำงานครั้งนี้มีความจำเป็นต้องดึงค่าหลายๆค่าจากฐานข้อมูลจึงขอใช้คำสั่งSQLที่ระบุชื่อฐานข้อมูลไว้หน้าชื่อtableผ่านไปทางฟังก์ชั่นmysql_query()จะเหมาะสมที่สุด สำหรับฟังก์ชั่นในการเรียกดึงข้อมูลนั้นเราจะใช้ฟังก์ชั่นmysql_fetch_array()ใช้สำหรับดึงข้อมูลจากตัวแปรที่ได้จากฟังก์ชั่นmysql_query()มาเก็บในรูปอาร์เรย์และสามารถอ้างถึงข้อมูลในฟีลด์ได้ด้วยชื่อฟีลด์หรือตัวเลขดัชนี(index)โดยในการเรียกใช้ฟังก์ชั่นmysql_fetch_array()1ครั้งจะดึงมา1เรคอร์ดและตัวชี้จะถูกเลื่อนไปยังเรคอร์ดถัดไปแต่หากไม่สามารถดึงเรคคอร์ดมาได้จะให้ค่าเป็นfalse..ซึ่งถ้าไม่มีข้อผิดพลาดโปรแกรมก็จะแสดงผลค่าBMIตามที่เราได้แก้ไขไว้ตามบรรทัดข้างต้นและจะมีbuttonให้กลับไปยังหน้าหลักได้อีดครั้ง $ordersresult = mysql_query("SELECT * FROM bmi_table WHERE name='$User'"); $ordersrow = mysql_fetch_array($ordersresult); print "คุณ" . $User . " นี่เป็นBMIย้อนหลังของคุณ "; print "วันที่ " . $ordersrow[3] . "ค่า BMI ของคุณ คือ " . $ordersrow[2] . " "; print "วันที่ " . $ordersrow[5] . "ค่า BMI ของคุณ คือ " . $ordersrow[4] . " "; print "และ "; print "วันที่ " . $ordersrow[7] . "ค่า BMI ของคุณ คือ " . $ordersrow[6] . "
"; print ""; ?> สำหรับFlow chart ดูได้จาก//www.geocities.com/netramanetrama/Flowchart.doc
Create Date : 22 ตุลาคม 2548 |
|
1 comments |
Last Update : 22 ตุลาคม 2548 15:35:00 น. |
Counter : 1444 Pageviews. |
|
|
|
|
| |
โดย: อ.พัน IP: 202.28.80.4 25 ตุลาคม 2548 14:26:20 น. |
|
|
|
|
|
|
|