วันอังคารที่ 23 เมษายน พ.ศ. 2556

การสร้างรัศมี logo ด้วย illustrator

การสร้างรัศมีของ logo ด้วย Illustrator ตามภาพข้างล่าง
หลักการ
สร้างแขนรัศมีหลัก 2 แขนให้มี Gradient ตามต้องการ แล้วใช้ Transform Effect ปรับให้เป็นรัศมี โดยทำทีละแขน กำหนดมุมหมุน ให้ตรงกันข้าม จากนั้นจึง Expand และแก้ไขหัวลูกศรอีกครั้งหนึ่ง

วิธีการ
  1. สร้างรูปนี้ เพื่อใช้เป็นแขนรัศมี
  2. สร้างอีกแขนหนึ่งในตำแหน่งเดียวกัน โดยคัดลอก และ เลือก paste in place
  3. จัดการทีละแขน โดย lock ที่ layer ชั้นใดชั้นหนึ่ง  
  4. ไปที่ Effects > Distort & Transform > Transform…
  5. ตั้งค่า scale Horizontal: 130%, Rotate Angle: 19.5, Copy:10, Preview: Check และปรับตำแหน่งการหมุน ให้อยู่กึ่งกลางด้านล่าง (ค่า horizontal, angle และ จำนวน copy อาจจะไม่เป็นไปตามนี้ ขึ้นอยู่กับขนาดของรัศมีที่สร้าง ถ้าไม่ได้ตามภาพ ให้ปรับค่าตัวเลข จนได้ตามต้องการ)

  6. ทำเช่นนี้กับอีกรูปหนึ่ง โดยคลิกเลือกชั้นที่เหลือเพื่อทำ transform
  7. ไปที่ Effects > Distort & Transform > Transform…
  8. ต้งค่าทุกอย่างเหมือนเดิม แต่ปรับค่า การหมุน เป็นค่าติดลบ เป็น -19.4

  9. ปรับหัวลูกศร โดยการ Expand ที่ละชั้น
  10. ที่ Layer คลิกเลือกชั้นแขนรัศมี ชั้นใดชั้นหนึ่ง
  11. ไปที่ Object > Expand Appearance 
  12. ใช้ White Arrow Tool ปรับหัวลูกศร

  13. เมื่อทำครบทั้งสองข้าง จะได้ภาพตามที่ต้องการ

วันจันทร์ที่ 22 เมษายน พ.ศ. 2556

ใช้พลาสติกอย่างไรให้ปลอดภัย

พลาสติกที่ใช้ทำภาชนะ ถุง หีบห่อบรรจุอาหาร สามารถปล่อยสารพิษ โดยเฉพาะ BPA โดยเฉพาะเมื่อถูกความร้อน เช่น การต้ม นึ่ง นำเข้าไมโครเวฟ ทำให้ให้สารพิษปนเปื้อนอาหาร เมื่อรับประทานเข้าไปอาจจะทำให้เกิดผลเสียต่อสุขภาพ

BPA  อาจจะส่งผลเสียต่อสุขภาพของมนุษย์ ดังนี้
  • มีผลต่อการสร้างฮอร์โมนของร่างกาย เป็นอุปสรรคต่อพัฒนาการของทารกในครรภ์ และวัยเด็ก
  • มะเร็ง จากการทดลองในสัตว์พบว่า สัตว์ที่ได้รับสาร BPA มีความเสี่ยงต่อการเป็นมะเร็งสูงกว่า 
  • มีผลต่อการสร้างเซลล์สมอง ระบบประสาท ความทรงจำ การเรียนรู้
  • มีผลต่อฮอร์โมนการเจริญเติบโต และการสืบพันธุ์ ทำให้เด็กเป็นหนุ่มเป็นสาวเร็วเกินไป
  • เด็กมีแนวโน้มที่จะเป็นโรคอ้วน และไฮเปอร์แอคทีฟ
  • ก่อให้เกิดความเสี่ยงโรคเบาหวาน และโรคหัวใจ
  • ยิ่งสะสมในร่างกายมากเท่าใด ก็จะยิ่งไปลดศักยภาพการทำงานของร่างกายมากขึ้น
  • ที่สำคัญคือ เด็กทารก เมื่อได้รับสาร BPA ก็จะส่งผลกระทบที่รุนแรงมากกว่าในเด็กโต หรือผู้ใหญ่
ทำอย่างไร จึงจะปลอดภัย

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

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

อย่างไรก็ตาม ภาชนะพลาสติกมีหมายเลขสัญลักษณ์รีไซเคิลพลาสติกที่พอจะดูได้ว่า มีความปลอดภัยมาก-น้อยกว่ากันได้

ถ้าพลิกดูที่ก้นของภาชนะพลาสติก จะเห็นตัวเลข ในลูกศรสามเหลี่ยม  ภายในมีตัวเลข 1-7
หมายเลข 1: โพลิเอทิลีนเทเรฟทาเลต (PET) ใช้ทำขวดบรรจุน้ำดื่ม ขวดน้ำมันพืช เป็นต้น
หมายเลข 2: พอลิเอธิลีนความหนาแน่นสูง (High Density Polyethylene) ใช้ทำขวดนม ขวดน้ำ และบรรจุภัณฑ์สำหรับน้ำยาทำความสะอาด ยาสระผม เป็นต้น
หมายเลข 3:  พอลิไวนิลคลอไรด์ (Polyvinylchloride) หรือที่รู้จักกันดีว่า พีวีซี (PVC) ใช้ทำท่อน้ำประปา สายยางใส แผ่นฟิล์มสำหรับห่ออาหาร แผ่นพลาสติกสำหรับทำประตู หน้าต่าง และหนังเทียม เป็นต้น
หมายเลข 4: พอลิเอทิลีนความหนาแน่นต่ำ (Low Density Polyethylene) เป็นพลาสติกที่มีความนิ่ม เหนียว ยืดตัวได้มาก ใส ทนทาน แต่ไม่ค่อยทนต่อความร้อน ใช้ทำฟิล์มห่ออาหารและห่อของ ถุงใส่ขนมปัง ถุงเย็นสำหรับบรรจุอาหาร เป็นต้น
หมายเลข 5: พอลิโพรพิลีน (Polypropylene) เรียกโดยย่อว่า พีพี (PP) เป็นพลาสติกที่มีความ ใส ทนทานต่อความร้อน คงรูป เหนียว และทนแรงกระแทกได้ดี นอกจากนี้ยังทนต่อสารเคมีและน้ำมัน ใช้ทำภาชนะบรรจุอาหาร เช่น กล่อง ชาม จาน ถัง ตะกร้ากระบอกใส่น้ำแช่เย็น ขวดซอส แก้วโยเกิร์ต ขวดบรรจุยา เป็นต้น
หมายเลข 6:  พลาพอลิสไตรีน (Polystyrene) เป็นพลาสติกที่มีความใส แต่เปราะและแตกง่าย ใช้ทำภาชนะบรรจุของใช้ต่างๆ หรือโฟมใส่อาหาร เป็นต้น
หมายเลข 7:  พลาสติกเลข 7 นั้นมิได้มีการระบุชื่อจำเพาะ แต่ไม่ใช่พลาสติกชนิดใดชนิดหนึ่งใน 6 ที่ได้กล่าวไปในข้างต้น

พลาสติกที่เชื่อกันว่าปลอดภัย และมีความเสี่ยงต่อการปล่อยสารพิษต่ำ ได้แก่หมายเลข 2, 4 และ 5 ส่วนหมายเลข 1 ซึ่งเป็นขวดบรรจุน้ำดื่มที่เราเรียกกันว่าขวดเพ็ด นั้น จัดเป็นพลาสติกที่ปลอดภัย แต่ไม่ควรนำมาใช้ซ้ำ เพราะอาจจะเป็นแหล่งสะสมของเชื้อโรคได้

ต่อไปจะซื้อภาชนะบรรจุอาหาร ควรพลิกดูที่ก้นภาชนะว่ามีตัวเลข 2 หรือ 4 หรือ 5 หรือไม่ ถ้าไม่มีตัวเลขอะไรเลย จะทำอย่างไร

ในขณะนี้ จริง ๆ ยังไม่มีใครฟันธงถึงผลเสียของพลาสติกที่มีต่อสุขภาพได้ชัดเจน ยังคงต้องอาศัยข้อมูลจากการศึกษาวิจัยถึงผลกระทบ แต่การตั้งข้อสังเกต และมีผลการวิจัยที่ทำให้ตั้งข้อสันนิษฐานถึงความไม่ปลอดภัยต่อสุขภาพของเราได้

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



ที่มา
http://children.webmd.com/environmental-exposure-head2toe/bpa
http://www.mom2kids.com/knowledge.php?id=93
http://ecovillagegreen.com/903/what-do-the-plastic-recycling-numbers-mean/
http://www.stou.ac.th/study/sumrit/1-56(500)/page4-1-56(500).html
http://www.เม็ดพลาสติก.net/%E0%B8%AA%E0%B8%B1%E0%B8%8D%E0%B8%A5%E0%B8%B1%E0%B8%81%E0%B8%A9%E0%B8%93%E0%B9%8C%E0%B8%9E%E0%B8%A5%E0%B8%B2%E0%B8%AA%E0%B8%95%E0%B8%B4%E0%B8%81/

วันอาทิตย์ที่ 21 เมษายน พ.ศ. 2556

นอนไม่หลับ ทำอย่างไร

การนอนเป็นเรื่องสำคัญในชีวิต ถ้านอนหลับดี หลับอย่างพอเพียง ตื่นขึ้นมาจะรู้สึกสดชื่น ไม่มึนงง งัวเงีย ชีวิตตลอดวันก็จะสดชื่น

โดยปกติ ผู้ใหญ่ต้องการนอนวันละ 7.5-8 ชั่วโมง  บางคนนอนเพียง 6 ชั่วโมงก็นพอ แต่บางคนต้องการนอนวันละ 9 ชั่วโมง ก็มี การนอนไม่หลับ การนอนไม่
พอ เป็นผลต่อสุขภาพโดยรวม

ถ้านอนไม่หลับ นอนหลับยาก ตื่นตอนกลางคืนแล้วนอนต่อไม่หลับ ถ้าเกิดปัญหาเหล่านี้จะทำอย่างไร

คุณหมอโดนัล โรบิน (Dr. Donald Robbins) ให้คำแนะนำไว้ดีเหมือนกัน โดยสรุป คือว่า
  1. แสงสว่างในห้องนอน ถ้ามีแสงสว่างจะทำให้นอนได้หลับไม่ดี แสงสว่างมีผลต่อการสร้างฮอร์โนเมลาโทนิน(Melatonin) ทำให้ร่างกายสร้างเมลาโทนินได้น้อยลง เมลาโทนินเป็นฮอร์โมนควบคุมการนอนหลับ ก่อนนอนควรปิด โทรท้ศน์ คอมพิวเตอร์ และอุปกรณ์ที่มีแสงสว่างทุกชนิด แม้แต่นาฬิกาดิจิตอลที่มีแสงสว่างก็ไม่ควรมีในห้องนอน เพราะเป็นอุปสรรคต่อการสร้างฮอร์โมนเมลาโทนินของร่างกาย
  2. การออกกำลังกาย การออกกำลังกายในตอนบ่าย จะช่วยให้นอนหลับได้ดีขึ้น การออกกำลังกายในตอนเย็น ใกล้เวลานอน มีผลเสียต่อการนอน
  3. ทำสมาธิก่อนนอน หยุดคิด หยุดกังวลเรื่องต่าง ๆ เพราะจะทำให้นอนไม่หลับ ถ้ากังวลเกี่ยวกับงาน พรุ่งนี้จะทำอะไร จะมอบหมายงาน จะสั่งงานอะไร จะต้องตัดสินใจอะไร ให้จดลงกระดาษเอาไว้ ถ้ามีหลายอย่างก็จดเลขที่ก่อนหลัง เรียงลำดับไว้ แล้วให้ลืมเรื่องทั้งหมดและเข้านอน การทำสมาธิ คุณแนะนำวิธีที่เรียกว่า เทคนิคพลังน้ำเงิน (blue energy technique) โดยการปล่อยวาง ทำมือ ทำเท้าให้ว่าง แล้วนำมารวมพลังไว้ที่จุดศูนย์กลางของร่างกาย อีกอย่างที่หมอโดนัลแนะนำคือ Mantra เป็นการทำอะไรซ้ำ ๆ เช่น ฝรั่งให้นับแกะถ้านอนไม่หลับ ของคนไทย ก็ให้ตัวเลข หรือ บางคนใช้การท่องจำ ก็ทำให้หลับได้เหมือนกัน
  4. อาบน้ำอุ่นก่อนนอน การอาบน้ำอุ่นทำให้ปุ่มเหงื่อขยายตัว ทำให้อุณหภูมิในร่างกายลดลง ทำให้นอนหลับได้ดีขึ้น อุณหภูมิในห้องนอนก็มีผลต่อการนอน มีการวิจัยที่ลดอุณภูมิที่ผิวหนังลงประมาณ 1 องศา พบว่า ทำให้นอนหลับได้ดีขึ้น ตื่นในระหว่างการนอนน้อยลง และทำให้มีเปอร์เซนต์การนอนหลับลึก (REM sleep) มากขึ้น
  5. ควรดื่มน้ำทันทีหลังจากตื่นนอน เพื่อชดเชยกับการสูญเสียน้ำในระหว่างนอนหลับ
  6. หล้งจากตื่นนอนแล้ว ควรใช้เวลาสัก 3-5 นาที ทำกายบริหาร ยืดเส้น สลัดแขนขา เป็นการช่วยเพิ่มอุณหภูมิของร่างกาย ขจัดความง่วง ทำให้ตื่นตัว เริ่มต้นวันใหม่ได้ดีขึ้น


ที่มา
http://webtalkradio.net/internet-talk-radio/2013/04/15/protecting-your-health-oral-cancer-testing-baby-talk-what-it-means-sleeping-better-and-vitamin-d-and-k2-guides/
http://www.webmd.com/sleep-disorders/features/adult-sleep-needs-and-habits

วันพฤหัสบดีที่ 18 เมษายน พ.ศ. 2556

น้ำกับผู้สูงอายุ

น้ำดื่มสำคัญอย่างไร

ร่างกายเกินครึ่งประกอบด้วยน้ำ น้ำนำแร่ธาตุและสารอาหารไปเลี้ยงเซลล์ต่าง ๆ ในร่างกาย และเป็นตัวนำของเสียออกจากร่างกาย ร่างกายจะอยู่ไม่ได้ถ้าไม่มีน้ำอย่างเพียงพอ


น้ำช่วยให้:
  • เปลี่ยนอาหารเป็นพลังงาน
  • ควบคุมอุณหภูมิในร่างกาย
  • ปกป้องและป้องกันการกระทบกันของอวัยวะสำคัญในร่างกาย และ
  • ช่วยให้เราเป็น "ปกติ"
อะไรจะเกิดขึ้น ถ้าเราดื่มน้ำไม่พอ

ถ้าดื่มน้ำน้อยกว่าน้ำที่ร่างกายสูญเสียออกไป ร่างกายจะขาดน้ำ เกิดภาวะที่เรียกว่า dehydrated ร่างกายสูญเสียน้ำทางปัสสาวะ เหงื่อ และ อุจจาระ เราเสริมกำลังด้วยการดื่มน้ำและของเหลวอื่น ๆ นอกจากนี้ เรายังได้น้ำจากผักและผลไม้อีกด้วย

ถ้าดื่มน้ำน้อยหรือเกิดภาวะการขาดน้ำ(dehydration) อาจจะเกิดอาการดังนี้
  •  กลืนอาหารลำบาก
  • ปากแห้งเนื่องจากร่างกายสร้างน้ำลายได้นอย
  • ปวดหัว
  • อ่อนเพลีย
  • เบื่ออาหาร
  • ตาแห้ง
  • เป็นตะคริว และ/หรือ
  • เป็นนิ่วในไต

ทำไมการดื่มน้ำจึงสำคัญสำหรับผู้สูงอายุ

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

 เราควรดื่มน้ำและของเหลวเป็นปริมาณเท่าไร

ผู้สูงอายุส่วนใหญ่ต้องการน้ำ/ของเหลว วันละ 6-8 แก้ว ทั้งนี้ขึ้นอยู่กับสิ่งต่อไปนี้
  • น้ำหนักของร่างกาย
  • กิจกรรมและการออกกำลังกายประจำวัน
  • ภาวะสุขภาพโดยรวม และ
  • ความร้อนของภูมิอากาศ
คำแนะนำในการดื่มน้ำ
  • ต้อนรับวันใหม่ด้วยการดื่มน้ำ 1 แก้ว
  • ดื่มน้ำ 1 แก้ว ก่อนการรับประทานอาหาร ครึ่งชั่้วโมง
  • ส่วนใหญ่ การกินยา ควรดื่มน้ำตาม 1 แก้วเต็ม ๆ (ควรปรึกษาแพทย์)
  • ควรดื่มน้ำ ประมาณ 1-2 แก้ว ในระหว่างหรือหลังจากกิจกรรมกลางแจ้ง
  • ติดน้ำดื่มไปด้วยตลอดเวลา



ที่มา
http://edis.ifas.ufl.edu/pdffiles/FY/FY07000.pdf (มหาวิทยาลัยฟลอลิด้า)

วันพุธที่ 17 เมษายน พ.ศ. 2556

การหาชื่อ field ของตาราง ใน Access

ในการทำงานกับ MS Access บางครั้งมีความจำเป็นที่ต้องหาชื่อฟิลด์ เพื่อใช้เป็นเงื่อนไข ตามที่ต้องการ

สมมติตาราง Table1 มึข้อมูล ดังนี้


วิธีการหาชื่อตาราง มีดังนี้
  1. สร้างฟอร์มใหม่ ชื่อ Form1
  2. สร้างปุ่ม ใช้ชื่อว่า Command1
  3. ที่เหตุการณ์ เมื่อคลิก ให้พิมพ์โค้ดข้างล่างนี้

    Private Sub Command1_Click()
    Set db = CurrentDb()
    Set rs1 = db.OpenRecordset("Table1")
    Dim fld As DAO.Field
    For Each fld In rs1.Fields
        MsgBox (fld.Name)
    Next
    Set fld = Nothing
    End Sub
  4. เมื่อคลิกที่ปุ่ม จะแสดงชื่อฟิลด์ ใน Message Box





วันอังคารที่ 16 เมษายน พ.ศ. 2556

อาหาร GMO: ข้อดีและความเสี่ยงต่อสุขภาพ

จีเอ็มโอ (GMO)

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

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

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

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

ความเสี่ยงต่อสุขภาพของมนุษย์

  1. Inserted gene ที่สอดใส่เข้าไปอาจมีผลเสียต่อสุขภาพ
  2. Inserted gene อาจสร้างโปรตีนที่เป็นพิษต่อคนหรือสร้างโปรตีนที่ทำให้เกิดการแพ้
  3. ยีนตัวใหม่อาจเหนี่ยวนำให้เกิดสารพิษที่มีอันตรายเพิ่มขึ้น เช่น ในฝ้าย ต้องมีการประเมินว่าสารพิษgossypol มีปริมาณมากขึ้นหรือไม่
  4. inserted gene จะทำให้จุลินทรีย์ที่นำยีนเข้าไปใน host cell เพิ่มความเป็นพิษ อันตรายมากขึ้นหรือไม่
  5. inserted gene จะเคลื่อนย้ายไปสู่จุลินทรีย์ในกระเพาะอาหาร ลำไส้ หรือทางเดินอาหารของคนหรือไม่

ผลกระทบต่อสุขภาพ
  1. โรคติดต่อ (Communicable disease) ความสามารถในการติดเชื้อของเชื้อโรคเนื่องมาจาก GMOs จะต้องมีการประเมินอย่างรอบคอบ แต่ส่วนใหญ่โดยมากเชื้อโรค เช่น virus จะทำให้เกิดการติดเชื้อในพืชจำนวนจำกัดบางชนิดเท่านั้นและมักไม่ข้ามสายพันธุ์ ดังนั้นการที่ virus จากพืชจะมาติดคนมีโอกาสน้อยมาก อย่างไรก็ตามมีรายงานว่า DNA ที่ได้จากพืชที่มีการตัดต่อยีนจะสามารถส่งเสริมให้เกิดการสร้าง virulence factor ที่สามารถส่งเสริมให้ virus ในพืชบางชนิด เช่น virus ที่ทำให้โรค mosaic ในกระหล่ำดอกเกิดพิษเพิ่มขึ้น
  2. การต้านสารปฏิชีวนะ (Antibiotic resistance) ต้องศึกษาถึงความเป็นไปได้ที่ antibiotic resistance gene จะสามารถ transfer จาก GMOs ไปยังแบคทีเรียในกระเพาะหรือลำไส้ โดยทางทฤษฎีแล้วเกิดขึ้นได้ยากมาก เพราะ antibiotic marker gene จะเชื่อมกับ promoter gene ในพืชเท่านั้น เพื่อช่วยในการคัดเลือกพืชที่ตัดต่อยีน จึงไม่น่าทำให้เกิดการต้าน antibiotic ในแบคทีเรียขึ้น อย่างไรก็ตาม marker gene ก็สามารถหลุดเข้าไปใน cell ของ จุลินทรีย์ได้แต่ในปริมาณที่ต่ำมาก น้อยกว่า 1 ใน 10-13 ในห้องปฏิบัติการ และน้อยกว่า 1 ใน 10-16 ในแปลงทดลอง ขณะนี้การตัดต่อยีนพยายามที่จะจำกัดไม่ให้มีการใช้ marker gene ที่มี antibiotic resistance หรือแยก marker gene ออกก่อนที่จะมีการสอดใส่ DNA เข้าไปในพืช
  3. โรคไม่ติดต่อหรือโรคเรื้อรัง (Non-communicable disease or chronic disease) โรคเรื้อรังมักได้รับ อิทธิพลหลายอย่าง เช่น genetic makeup ของตนเอง แต่ละคนจะมี genetic ไม่เหมือนกัน นอกจากนี้ขึ้นอยู่กับอาหารที่ได้รับ การ expose กับสิ่งแวดล้อมหรือรังสี รวมทั้งพฤติกรรมการบริโภคบางอย่าง เช่น การสูบบุหรี่ อย่างไรก็ตามโอกาสน้อยมากที่พันธุกรรมของคนจะเปลี่ยนแปลงไปจากการบริโภคอาหาร GMOs ทั้งนี้มีหลักฐานว่า DNA จาก GM Food มีโอกาสน้อยมากที่จะหลุดเข้าไปใน cell ของคน
  4. ทางด้านโภชนาการ (Nutritional imbalance effects) ในการตัดแต่งพันธุกรรมอาจมีโอกาสเกิดผลที่ไม่ตั้งใจ ดังนั้นจึงต้องมีการประเมินความปลอดภัยของ GMOs ทุกชนิด
  5. การเปลี่ยนแปลงระบบภูมิคุ้มกันหรืออาการแพ้ (Altered immune response/Allergenicity) ต้องพยายามหลีกเลี่ยงไม่นำพืชที่ได้จาก host ที่มีประวัติการแพ้มาใช้โดยเด็ดขาด ต้องมีการตรวจสอบ ปัญหาในการตรวจสอบมีข้อจำกัดเนื่องจากเราใช้การเปรียบเทียบกับ unknown allergen สำหรับ allergen ใหม่ ๆ ต้องมีการศึกษาซึ่งต้องใช้เวลานานและยากมาก
  6. ผลทางอ้อม (Indirect effects) เพราะหากมี GMOs หลุดเข้าไปในสิ่งแวดล้อมหรือปนเปื้อนในอาหารของสัตว์ และเราได้บริโภคสัตว์ที่ได้รับอาหารที่เป็น GMOs ด้วย ก็อาจทำให้เกิดผลกระทบต่อสุขภาพ
Dr Jayson & Mira Calton ในรายการ Dr.Lo Radio Show พูดถึงองค์ประกอบของอาหารที่ดี หรือ Fab14 ว่า นอกจากจะมีสารตกค้างน้อยแล้ว ยังต้องไม่เป็นอาหาร GMO พืชต้องไม่ใช้เมล็ดพันธ์ GMO หรือ ถ้าเป็นสัตว์ ก็
ต้องไม่เลี้ยงด้วยอาหาร GMO แต่ทั้ง Dr Jayson และ Mira Calton ก็ไม่ได้ระบุชัดเจนว่า อาหาร GMO ให้ผลเสียต่อร่างกายอย่างไร แต่ระบุว่า ควรหลีกเลี่ยงอาหาร GMO อาหารที่มีข้อความว่า Non-GMO เป็นอาหารที่ปลอดภัย

สถาบันเวชศาสตร์สิ่งแวดล้อมของอเมริกา(the American Academy of Environmental Medicine หรือ AAEM) เรียกร้องให้แพทย์แจ้งเตือน ผู้ป่วย สังคมแพทย์ และประชาชนทั่วไป ให้หลีกเลี่ยงอาหาร GMO ให้มากที่สุดเท่าที่จะทำได้ และขอให้จัดทำเอกสาร ประชาสัมพันธ์ ให้ข่าวสารข้อมูล เกี่ยวกับอาหาร GMO และความเสี่ยงที่มีต่อสุขภาพของมนุษย์ เรียกร้องให้มีการศึกษาวิจัยทีใช้ช่วงระยะเวลานาน ในเรื่อง GMO ตลอดจนเรียกร้องให้มีการปิดฉลากบอกให้ชัดเจนว่า อาหารใดเป็น
อาหาร GMO

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

ในประเทศอเมริกา แม้ว่าจะยังไม่บังคับให้ติดป้ายเครื่องหมาย GMO แต่ก็สามารถสังเกตได้จาก รหัส PLU (Price Look Up Code) ที่ติดอยู่บนพืชผักผลไม้ เช่น ถ้าขึ้นต้นด้วยเลข 3 หรือ 4 คือ อาหารที่ปลูกแบบดั้งเดิม (มีการใช้ยาฆ่าแมลงฉีดพ่นตามปกติ)  ขึ้นต้นด้วยเลข 9 คือ เป็นเกษตรอินทรีย์ หรือ เชิงชีวภาพ (Organics) แต่ถ้าขึ้นต้นด้วยเลข 8 คือ อาหาร GMO

โดยสรุป

GMO มีประโยชน์ต่อผู้ผลิตแน่นอน ทั้งบริษัทผู้ผลิตพันธ์พืช สัตว์ GMO และ เกษตรกรผู้นำพืชไปปลูกและนำสัตว์ไปเลี้ยง เพราะ ประหยัด ได้ผลผลิตที่ดี แต่ข่อเสียสำหรับเกษตรกรคือ ยังคงต้องขึ้นอยู่กับบริษัทผู้ผลิต GMO เนื่องจากไม่สามารถเพาะพันธ์ขึ้นเองได้

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

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

อยากเรียกร้องไปยัง สำนักงานคณะกรรมการอาหารและยา ให้ช่วยทำความกระจ่างอย่างตรงไปตรงมา ปราศจากการครอบงำของธุรกิจพันล้าน หรืออย่างน้อย ออกกฎระเบียบข้อบังคับให้มีการติดฉลาก GMO เพื่อให้ผู้บริโภคสามารถตัดสินใจได้ว่า จะรับประทานอาหาร GMO หรือไม่



ที่มา
http://www.thaibiotech.info/
http://organic.lovetoknow.com/Pros_and_Cons_of_GMOs
http://www.ornl.gov/sci/techresources/Human_Genome/elsi/gmfood.shtml
http://www2.econ.iastate.edu/faculty/wisner/Wisner/japan%20gmo%20900%20revised.pdf
http://library.uru.ac.th/webdb/images/fda_moph_gmorisk.htm
http://www.responsibletechnology.org/doctors-warn
http://www.blogtalkradio.com/drloradio/2013/02/20/rich-food-poor-food-with-dr-jayson-mira-calton
http://fortychestnuts.com/2011/08/02/breaking-the-code-on-fruit-stickers/

วันจันทร์ที่ 15 เมษายน พ.ศ. 2556

ฉลาก ข้อมูลโภชนาการ

ก่อนซื้อสินค้า โดยเฉพาะจำพวกอาหาร ต้องอ่านฉลากเสียก่อน เช่น ดูวันหมดอายุ และดูคุณค่าทางโภชนาการ ที่ฉลาก ข้อมูลโภชนาการ

ฉลากข้อมูลโภชนการ ประกอบด้วย 3 ส่วน ดังนี้


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

คำแนะนำในการอ่านข้อมูลโภชนาการ
  1. ดูปริมาณ “หนึ่งหน่วยบริโภค” หรือ ปริมาณการกินต่อครั้งที่ผู้ผลิต แนะนำให้ผู้บริโภครับประทาน หรือหมายถึง กินครั้งละเท่าไรนั่นเอง ซึ่งได้มาจากค่าเฉลี่ยที่รับประทานของคนไทย เมื่อรับประทานในปริมาณเท่านี้แล้วก็จะได้รับสารอาหารตามที่ระบุไว้บนฉลาก แต่ถ้ารับประทานมากว่า หนึ่งหน่วยบริโภค จะได้รับสารอาหารมากกว่าที่ระบุ เป็น 2 เท่า
  2. ดู “คุณค่าทางโภชนาการต่อหนึ่งหน่วยบริโภค”


อ้างอิง



http://www.oryor.com/oryor/admin/module/fda_pub_leaflet/file/f_19_1268808933.pdf
http://www.csjoy.com/story/food/food.htm
Lord Rudi C. Loehwing, "Sustainable Health & Nutrition Show 10/26/2011", http://internetradiopros.com/sustainablehealth/

การเปิดฟอร์มให้พร้อมรับข้อมูล ใน MS Access ด้วย VBA

ใน MS Access โดยปกติเมื่อสร้างฟอร์มและมีการกรอกข้อมูล เมื่อเรียกเปิดฟอร์มเพื่อกรอกข้อมูล ฟอร์มจะยังไม่พร้อมที่จะทำงาน เพราะโปรแกรมจะไปที่ Record แรก ต้องเลื่อนตำแหน่งไปยัง Record สุดท้ายและเพิ่ม Record ใหม่

ฟอร์มเมื่อเปิดครั้งแรก ถ้าดูที่ Navigation bar ด้านล่าง จะเห็นว่าอยู่ที่ ระเบียนที่ 1 จากทั้งหมด 2837 ระเบียน


ถ้าต้องการให้เปิดฟอร์มแล้วพร้อมใช้งาน ให้ใช้ VBA สั่งให้ไปยัง Record สุดท้าย และสร้าง Record ใหม่ ขึ้น โดยเรียกใช้คำสั่ง ที่เหตุการณ์ เมื่อเปิด ของฟอร์มนั้น ดังนี้

DoCmd.RunCommand acCmdRecordsGoToNew

 

เมื่อเปิดฟอร์ม จะทำให้ฟอร์มพร้อมที่จะรับคำสั่งใหม่ทันที ซึ่งจะสังเกตที่ Navigation bar ด้านล่างของฟอร์ม ซึ่งแสดงระเบียน แสดงให้เห็นว่า โปรแกรมสร้างระเบียนเพิ่มอีก 1 ระเบียน เป็นระเบียนที่ 2838 และขณะนี้ กำลังอยู่ที่ระเบียน 2838 พร้อมที่จะรับการป้อนข้อมูล



วันเสาร์ที่ 13 เมษายน พ.ศ. 2556

การเพิ่มพื้นที่ในไดรฟ์ C

วันก่อนหลังจาก Windows 7 ทำการ Update พอเปิดเครื่องขึ้นมา Drive C: มีแถบสีแดง ตรวจดูพบว่า พื้นที่เหลือน้อย

ไปดูที่ Administrative Tools (Create and format hard disk partitions) พบว่า ไม่สามารถ Extend Partition ของ Drive C: ได้

 
 
ค้นหาดูในอินเทอร์เน็ต พบว่ามีโปรแกรมฟรี สำหรับจัดการ Partition อยู่หลายโปรแกรม เช่น KDE Partition Manager โปรแกรม Paragon Partition Manager และ easeUS เป็นต้น
 
โปรแกรม Paragon Partition Manager ใช้ได้ดีระดับหนึ่ง คือสามารถรวมพื้นที่ Partition ที่เป็นชนิดเดียวกัน ที่อยู่ติดกันได้
 
โปรแกรมที่ดีกว่าคือ KDE Partition Manager ดาวน์โหลดได้ที่ sourceforce.net เป็นไฟล์ ISO เมื่อดาวน์โหลดมาแล้ว ให้ใช้โปรแกรมเขียนลงแผ่นซีดี เช่น CDBurnerXP หรือ Nero เขียนลงแผ่นซีดี และ Boot เครื่องจากแผ่นนี้ และทำตามหน้าจอ โปรแกรมสามารถจัดการเพิ่ม ลด พื้นที่ของ Partition ได้ หน้าจอใช้ง่าย
 
โปรแกรม easeUS ดาวน์โหลดได้ที่ เว็บไซต์ easeUS มีทั้งรุ่น Professional และ รุ่น Free ผมใช้รุ่น Free ก็สามารถทำงานได้ดี
 
ติดตั้งแล้วเปิดมาดูหน้าตาเรียบร้อย
 
 หน้าจอนี้สำหรับเพิ่ม-ลดขนาด Partition
ใช้งานง่าย สามารถลดขนาด Partition ที่มีพื้นที่เหลือจำนวนมากให้น้อยลง และเอาไปเพิ่มให้กับ Partition ที่เหลือพื้นที่น้อยได้

ถ้าต้องการลดหรือเพิ่มพื้นที่ ให้ลากที่เส้นขอบของแต่ละ Partition ถ้าพื้นที่ว่างไม่มี จะไม่สามารถเพิ่มได้ ต้องลดพื้นที่ Partition ใด Partition หนึ่งเสียก่อน เมื่อมีพื้นที่ว่างจึงสามารถขยายพื้นที่ของ Partition ได้

เมื่อกำหนดเสร็จแล้ว ให้กดปุ่ม Apply เพื่อสั่งให้ทำงาน

ถ้าเป็นการเพิ่้มหรือลด Partition โปรแกรมจะให้ปิด Windows 7 และเปิดใหม่เพื่อจัดการกับพื้นที่ตามที่กำหนด







วันอังคารที่ 9 เมษายน พ.ศ. 2556

ต้อกระจก

วันนี้ไปตรวจตาตามที่หมอนัด หมอตรวจดูบอกว่า เป็นต้อกระจก แต่ยังไม่มาก

ต้อกระจก (Cataract)

สาเหตุ

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

ต้อกระจกมีหลายประเภท เช่น
  1. ต้อกระจกในผู้สูงอายุ มีสาเหตุจากการมีอายุสูงขึ้น เป็นต้อกระจกที่พบมากที่สุด
  2. ต้อกระจกที่มีมาแต่กำเนิด ซึ่งอาจเกิดจากการติดเชื้อ การบาดเจ็บ การพัฒนาการไม่สมบูรณ์ก่อนกำเนิด เป็นต้น
  3. ต้อกระจกทุติยภูมิ เกิดจากผลทางการแพทย์ การใช้ยาบางประเภท โรคเบาหวาน การได้รับสารพิษ รังสีไวโอเล็ต หรือ กัมมันตรังสี เป็นต้น
  4. ต้อกระจกจากการบาดเจ็บ เกิดจากดวงตาได้รับการบาดเจ็บ
สาเหตุส่วนใหญ่เกิดจากการเปลี่ยนแปลงตามธรรมชาติของร่างกายเมื่อมีอายุสูงขึ้น นอกจากนี้อาจจะเกิดจากการสูบบุหรี่ การอยู่กลางแดดเป็นเวลานาน หรือ ภาวะโภชนาการที่ขาด วิตามินและสารต้านอนุมูลอิสระ

การป้องกัน

เนื่องจากต้อกระจกเกิดได้จากหลายสาเหตุ ซึ่งยังไม่ทราบแน่ชัด ปัจจุบันยังไม่มีวิธีการใดที่สามารถใช้เพื่อป้องกันไม่ให้เกิดต้อกระจกได้ วิธีที่ดีที่สุดคือการพบแพทย์เพื่อตรวจตา โดยเฉพาะในผู้ที่มีปัจจัยความเสี่ยงสูง เช่น ผู้ที่มีอายุตั้งแต่ 50 ปีขึ้นไป ผู้ที่เคยมีปัญหาเกี่ยวกับตา เช่น ดวงตาได้รับบาดเจ็บ ผู้ที่เป็นเบาหวาน เป็นต้น

การสวมแว่นกันแดด การใช้หมวกมีปีกเพื่อป้องกันแสงอุลตร้าไวโอเล็ด อาจจะช่วยชะลออาการต้อกระจกได้ นอกจากนี้ โภชนาการที่ดี อาจจะช่วยลดปัจจัยความเสี่ยงที่จะเกิดต้อกระจก เช่น การกินผักสีเขียว ผลไม้ หรืออาหารอื่นที่มีสารต้านอนุมูลอิสระ

การรักษา

การรักษาที่ได้ผลคือการผ่าตัด

ในกรณีที่ยังเป็นไม่มาก อาจจะยังไม่ต้องใช้วิธีการผ่าตัด แต่ใช้การดูแลรักษาด้วยการใช้แว่นสายตาที่ถูกต้องกับสายตา ใช้แว่นขยาย เปลี่ยนหลอดไฟให้สว่างขึ้น ใช้แว่นตัดแสงสะท้อน และหลีกเลี่ยงการขับรถตอนกลางคืน


อย่างไรก็ตาม เมื่อมีอาการมากขึ้น เป็นอุปสรรคต่อการมองเห็น ต้องใช้วิธีการผ่าตัดเท่านั้น



แหล่งที่มา
http://www.webmd.com/eye-health/cataracts/health-cataracts-eyes
http://www.medicalnewstoday.com/articles/157510.php
http://hospital.moph.go.th/bangsay/CATARACT.html

วันอาทิตย์ที่ 7 เมษายน พ.ศ. 2556

การสร้างข้อสอบออนไลน์ และตรวจข้อสอบ ด้วย PHP

ครั้งก่อน เคยพูดเรื่อง การใช้ตัวแปรในตัวแปร ของ PHP และ การส่งค่า Array ของ PHP ซึ่งทำให้การทำงานสะดวก รวดเร็ว ไม่ต้องเขียนโค้ดยาว

คราวนี้ จะเป็นการนำมาใช้เรื่องการตรวจข้อสอบ

ในตัวอย่างนี้ ประกอบด้วยไฟล์ 2 ไฟล์ คือ ไฟล์ข้อสอบ ชื่อ quiz.php และไฟล์ตรวจข้อสอบ ชื่อ checkit.php

ไฟล์ข้อสอบ (quiz.php)
มีการส่งค่าเฉลยคำตอบที่ถูก ชื่อวิชา เกณฑ์การสอบผ่าน และให้ผู้เข้าสอบกรอกชื่อตัวเอง การส่งค่าเฉลยคำตอบ ชื่อวิชา และเกณฑ์การสอบผ่าน ส่งแบบ hidden โดยผู้ออกข้อสอบเป็นผู้กำหนด ส่วนชื่อผู้เข้าสอบ ให้ผู้เข้าสอบพิมพ์เองผ่านหน้าจอ

ไฟล์ตรวจข้อสอบ(checkit.php)
รับค่าจากไฟล์ quiz.php และนำมาตรวจคำตอบ พร้อมทั้งพิจารณาผลสอบว่าสอบผ่านหรือไม่ แล้วแจ้งผลทางหน้าจอ

ไฟล์ตรวจข้อสอบ สามารถใช้ตรวจข้อสอบได้หลายวิชา แต่ละวิชามีจำนวนข้อไม่จำกัด

โค้ดตัวอย่างไฟล์ข้อสอบ (quiz.php)

<?php
$subjectName = "ความรู้ทั่วไป";
//เฉลยข้อที่ถูก -- ไม่จำกัดจำนวนข้อ
$correctAns=array("ข","ก","ค","ง","ค","ง"); 
//เกณฑ์การผ่านขั้นต่ำ
$cutpoint = 60;
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
<title>ตัวอย่างข้อสอบ</title>
<body>
<form method="POST" action="checkit.php">  
<P><H1>แบบทดสอบตัวอย่าง</H1><P>
1) อำเภอสวนผึ้ง อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question1">ก) เพชรบุรี<br>
<input type="radio" value="ข" name="question1">ข) ราชบุรี<br>
<input type="radio" value="ค" name="question1">ค) ลพบุรี<br>
<input type="radio" value="ง" name="question1">ง) สุพรรณบุรี<br>
<br>
2) สะพานข้ามแม่น้ำแคว อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question2">ก)กาญจนบุรี<br>
<input type="radio" value="ข" name="question2">ข) ประจวบคีรีขันธ์<br>
<input type="radio" value="ค" name="question2">ค) นครปฐม<br>
<input type="radio" value="ง" name="question2">ง) ราชบุรี<br>
<br>
3) พระพุทธชินราช อยู่จังหวัดอะไร<br>
<input type="radio" value="ก" name="question3">ก) เชียงใหม่<br>
<input type="radio" value="ข" name="question3">ข) สุโขทัย<br>
<input type="radio" value="ค" name="question3">ค) พิษณุโลก<br>
<input type="radio" value="ง" name="question3">ง) พิจิตร<br>
<br>
4) อำเภอกาบเชิง อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question4">ก) อุบลราชธานี<br>
<input type="radio" value="ข" name="question4">ข) หนองคาย<br>
<input type="radio" value="ค" name="question4">ค) บุรีรัมย์<br>
<input type="radio" value="ง" name="question4">ง) สุรินทร์<br>
<br>
5) หาดบางแสน อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question5">ก) ระยอง<br>
<input type="radio" value="ข" name="question5">ข) จันทบุรี<br>
<input type="radio" value="ค" name="question5">ค) ชลบุรี<br>
<input type="radio" value="ง" name="question5">ง) ตราด<br>
<br>
6) พระธาตไชยา อยู่ในจังหวัดอะไร<br>
<input type="radio" value="ก" name="question6">ก) นครปฐม<br>
<input type="radio" value="ข" name="question6">ข) นครพนม<br>
<input type="radio" value="ค" name="question6">ค) นครราชสีมา<br>
<input type="radio" value="ง" name="question6">ง) นครศรีธรรมราช<br>
<br>
<br>ชื่อของผู้เข้าสอบ
<input type="text" name="usrName" size="80">
<?php
foreach($correctAns as $value)
{
  echo '<input type="hidden" name="result[]" value="'. $value. '">';
}
echo "<input type = hidden name = \"subjName\" value='$subjectName'>";
echo "<input type = hidden name = \"cpoint\" value=$cutpoint>";
?>

<BR><BR>
   <input type="submit" value="ส่งข้อมูล" name="ok">
   <INPUT TYPE="RESET" VALUE="ยกเลิก">
   </FORM>

</body>
</html>

ไฟล์ตรวจข้อสอบ (checkit.php)

<html>
<head>
<title>ตรวจข้อสอบ</title>
<meta http-equiv="Content-Type" content="text/html; charset=tis-620">
</head>
<body>
<?php
$thisUserName = trim($_POST["usrName"]);
$subjName = $_POST["subjName"];
$cutpoint = $_POST["cpoint"];
$correctAns = $_POST["result"];  // $correctAns เป็น Array ประกอบด้วย คำตอบที่ถูก ที่ส่งมาจากตัวข้อสอบ
$numOfQstns = sizeof($correctAns);
$score = 0;
// รับคำตอบ
for ($i=1; $i<=$numOfQstns; $i++)
   {
      $stAns[$i-1] = trim($_POST["question" . $i]);  
   }
// ตรวจคำตอบ
for ($i=0; $i<=($numOfQstns-1); $i++)
   {
  $correct = $correctAns[$i];
        $stAnswer = $stAns[$i];
  if($stAnswer == $correct) {
  $score++;
  };
   };
    $percentage = number_format($score/$numOfQstns*100, 2, '.', '');
 echo "ชื่อผู้ทำข้อสอบ:  $thisUserName<br>";
 echo "ข้อสอบวิชา: $subjName <br>";
 echo"ทำข้อสอบได้ทั้งหมด: $score ข้อ คิดเป็นร้อยละ $percentage <br>";
 echo "<br><br><b>ผลการสอบ</b>";
   if($percentage >=$cutpoint) {
   echo "<br> ผ่าน";
   }else{
    echo "<br><span style=\"color: #f00;\"> ท่านไม่ผ่านเกณฑ์ $cutpoint %</span><p><input type=\"button\" value=\"ทำข้อสอบใหม่\" onClick=\"history.go(-1)\">";
   }
?>

แสดงผล

ถ้าทำข้อสอบผ่านเกณฑ์

ถ้าสอบไม่ผ่านเกณฑ์




วันศุกร์ที่ 5 เมษายน พ.ศ. 2556

การสร้างฟอร์ม และ PHP อยู่ในหน้าเดียวกัน

โดยปกติเมื่อมีการสร้างฟอร์มเพื่อเก็บข้อมูลโดยใช้ PHP มักจะมี 2 ไฟล์ คือ ไฟล์ HTML สำหรับสร้างฟอร์มเพื่อเก็บข้อมูล และ เมื่อกดปุ่มส่งข้อมูล จะไปเรียกใช้งานไฟล์ PHP

เราสามารถ รวมไฟล์ทั้งสองเข้าด้วยกัน เหลือไฟล์เดียว โดยใช้หลักการดังนี้
  1. สร้างไฟล์ PHP ที่ประกอบด้วย ฟอร์มและโค้ดของ PHP
  2. ครั้งแรกให้ตรวจสอบว่ามีการคลิกปุ่มส่ง แล้วหรือยัง โดยใช้ฟังก์ชัน isset() ถ้ามีการคลิกปุ่มแล้ว ให้ไปที่โค้ด PHP ถ้ายังไม่มี ให้ไปที่ฟอร์ม
  3. ที่ฟอร์ม Action ให้เรียกชื่อไฟล์ตัวเอง คือ $_SERVER['PHP_SELF']
  4. การใช้ PHP_SELF มีจุดอ่อน Hacker สามารถใช้ Query String ส่ง script พ่วงเข้ามาอาศัยให้ทำงานอื่น ๆ ได้ จึงควรป้องกันไว้ก่อน โดยใช้ฟังก์ชัน htmlentities() เพื่อไม่ให้สามารถพ่วงโค้ดเข้ามาได้
  5. ในกรณีที่ เราใช้ Query String ส่งค่าเข้ามา เช่น ส่งค่า thisid ดังนี้

    http://localhost/temp/phpFormDemo.php?thisid=12345

    ให้รับค่า thisid ไว้ก่อน (กรณีนี้ใช้ GET แต่สามารถส่งมาทาง POST ก็ได้) และส่งค่าจากฟอร์ม ไปที่โค้ด PHP ผ่านทาง hidden input type
ตัวอย่างโค้ด ฟอร์ม และ PHP ในหน้าเดียวกัน

<?php
$id = $_GET["thisid"];
if(isset($_POST['submit']))
{
    $firstName = $_POST['fName'];
    $lastName = $_POST['lName'];
    $id = $_POST['id'];
 echo "<h2>ยินดีต้อนรับ คุณ$firstName $lastName</h2>";
 echo "id ของท่านคือ $id <br>";
}else{
?>
<form name="test" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
ชื่อ<input type="text" name="fName" size=50><br>
นามสกุล<input type="text" name="lName" size=50><br>
<input type="hidden" name="id" value = "<?php echo $id ?>"><br>
<input type="submit" name="submit" value="ส่งข้อมูล"></td></tr>
</form>
<?php
}
?>

แสดงผล

เมื่อเปิดครั้งแรก จะแสดงฟอร์มเพื่อรับข้อมูล (มีการใช้ query string ส่งค่า thisid ด้วย (
http://localhost/temp/phpFormDemo.php?thisid=12345)


 เมื่อเติมข้อมูลและคลิกปุ่มส่งข้อมูล จะแสดงผล ดังนี้







อ้างอิง
http://www.html-form-guide.com/php-form/php-form-action-self.html

วันพฤหัสบดีที่ 4 เมษายน พ.ศ. 2556

การแบ่งหน้าแสดงผลข้อมูล ด้วย PHP

การค้นหาข้อมูลและนำข้อมูลการแสดง ถ้าข้อมูลมีจำนวนมากไม่สะดวกในการดู จำเป็นต้องแบ่งหน้าออกเป็นหน้า ๆ เพื่อให้ดูได้สะดวก ลักษณะเดียวกับที่ Google นำผลการค้นหามาแสดงให้ดู

หลักการ

กำหนดข้อมูลของ limit โดยคำนวณจาก จำนวนที่ต้องการให้แสดงข้อมูลในแต่ละหน้า เพื่อนำไปใช้หาข้อมูลในฐานข้อมูลด้วยคำสั่ง SELECT จากนั้นนำผลที่ได้ไปใส่ไว้ในตัวแปร Array เพื่อนำไปแสดงในแต่ละหน้า

ตัวอย่างโค้ด

<?php
$host= "  "; //ข้อมูลฐานข้อมูลของท่าน
$usr= "  ";
$pwd= "  ";
$db= "  ";
//ติดต่อฐานข้อมูล
$cid = mysql_connect($host,$usr,$pwd);
 mysql_select_db($db);
 if (!$cid) { echo "ERROR: " . mysql_error() . "\n"; };
 $query = "SELECT * FROM socialMedia ORDER BY fname, subject DESC";
 $result = mysql_query($query) or die("Couldn't execute query" . mysql_error());  // student table
 $numrows=mysql_num_rows($result);
 if ($numrows == 0)
  {
 echo "<table>";
 echo "<tr valign=\"top\"><td></td><td><p>ไม่พบข้อมูล</p></td></tr></table>" ;
  }
echo "<br>";
$limit=3;   // กำหนดจำนวนบรรทัดในแต่ละหน้า
  if (empty($s)) {
  $s=0;
  }
$count = 1 + $s ;
$query .= " limit $s,$limit"; // the first limit is msql command to start searching from
$result = mysql_query($query) or die("Couldn't execute query" . mysql_error());  // student table
$idx = 0;
while ($row= mysql_fetch_array($result)) {
 $idx += 1;
 $thisName = $row['fullName'];
 $thisAddress = $row['address'];
 $thisSubj = $row['subject'];
 $thisScore = $row['score'];
 $thisDate = $row['dateTaken'];
 $thisProject = $row['project'];
 $data_list[] = array("idx" => $idx, "name" => $thisName, "address" => $thisAddress, "subject" => $thisSubj, "score"=>$thisScore, "dateTaken"=>$thisDate, "project" => $thisProject);
 }
echo "<p>";
reset($data_list);    //move pointer to front
$numOfItems = count($data_list);
 $limit = 3;
echo "<h2>ตัวอย่างการแบ่งหน้าด้วย PHP </h2> แสดงผลหน้าละ $limit รายการ";
  echo "<table width='100%' border='1'><tr align='center'><td>ที่</td><td>ชื่อ</td><td>ที่อยู่</td>";
  echo "<td>วิชา</td><td>คะแนน</td><td>ว/ด/ป</td><td>ชิ้นงาน</td></tr>";
  // แสดงข้อมูล
while (list($k, $v) = each($data_list)) {
  echo "<tr valign = \"top\"><td> $count) </td><td>" . $v["name"] . "</td> <td>" . $v["address"] . "</td><td>" . $v["subject"] . "</td><td align=\"right\">" . number_format($v["score"]) . "  </td><td>" . $v["dateTaken"] . "</td><td>" . $v["project"] . "</td></tr>";
  $count +=1;
  echo "<P>";
}  // end while
echo "</table>";
 //break before paging
 echo "<br />";
 $numpages = ceil($numrows/$limit);  //คำนวณหาจำนวนหน้า ปัดเศษขึ้นถ้ามีเศษ
 $currPage = (($s/$limit) + 1);
    for( $i=1; $i<= $numpages; $i++ ){
    if($i % 45 == 1){  //ตัวเลขหมายเลขหน้าให้ลิงค์ว่าจะไปหน้าไหน กำหนดให้แสดง บรรทัดละ 45 ตัวเลข
  echo "<br>";
 }
      if( $i == $currPage){
        echo "<b> ". ($i) ."</b>";      // ถ้าเป็นหน้าปัจจุบัน ไม่ต้องมีลิงค์ แต่แสดงด้วยตัวหนา
      }else{
       $start = ( ($i-1) * $limit ); // start search from
  echo " <a href=\"pagingSample.php?s=$start\">$i</a>";
      }
    }
$a = $s + ($limit) ;
  if ($a > $numrows) { $a = $numrows ; }
  if ($numrows < 1){
   $b= 0;
 }else{
   $b = $s + 1;
 };
  echo "<p> ข้อมูลรายการที่ $b ถึง $a จากข้อมูลทั้งหมด $numrows รายการ</p>";
?>

แสดงผล



วันพุธที่ 3 เมษายน พ.ศ. 2556

การสร้างฟอร์มค้นหา และให้แสดงผลการค้นหาในหน้าเดียวกัน ด้วย PHP

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

ในตัวอย่างนี้ ไม่ได้แสดงวิธีการค้นหาคำในฐานข้อมูล แต่แสดงคำค้นหาเท่านั้น การค้นหาในฐานข้อมูลเป็นเรื่องพื้นฐานที่ควรรู้อีกเรื่องหนึ่ง

โค้ด PHP การตรวจสอบคำ การแสดงฟอร์มการค้นหา และแสดงผลในหน้าเดียวกัน

<?php
 if ($isPwdOK == ""){
$thisPwd = $_POST["myText"];
 }
if($thisPwd == "นฤมล" || $isPwdOK == "yes"){
 echo "<H2>ยินดีต้อนรับ คุณ$thisPwd</H2>";
 ?>
<h2>ค้นหา</h2>
 <form name="search" method="post" action="<?=$PHP_SELF?>">
 ข้อมูลที่ต้องการค้นหา: <input type="text" name="find" />
 <input type="hidden" name="searching" value="yes" />
 <input type="hidden" name="isPwdOK" value="yes" />
 <input type="hidden" name="thisPwd" value= "<?=$thisPwd ?>" />
 <input type="submit" name="search" value="Search" />
 </form>
<?php
 }else{
 echo "<span style=\"color: #f00;\">รหัสไม่ถูกต้อง</span><br><br>";
 echo "<input type=button onClick=\"location.href='index.php'\" value='กลับเมนูหลัก'>";
 exit;
}
 //ตรวจสอบว่ามีการกดปุ่มส่งฟอร์มแล้วหรือไม่ ถ้ากดแล้วให้แสดงต่อไปนี้
 if ($searching =="yes")
 {
 echo "<h2>แสดงผลการค้นหา</h2><p>";
 //ตรวจสอบว่า ได้มีการพิมพ์ข้อความที่ต้องการค้นหาหรือไม่
 if ($find == "")
 {
 echo "<p>ยังไม่ได้พิมพ์ข้อความสำหรับค้นหา";
 exit;
 }
 }
 //แสดงคำค้นหา สามรถนำคำนี้ไปค้นหาในฐานข้อมูลต่อไป
 echo "<b>คำค้น:</b> " .$find;
echo "<br><br><input type=button onClick=\"location.href='index.php'\" value='กลับเมนูหลัก'>";
?>

แสดงผล

รหัสที่พิมพ์เข้ามาไม่ถูกต้อง
 
รหัสถูกต้อง แสดงฟอร์มการค้นหา
 
เมื่อพิมพ์คำค้นหา ให้นำมาแสดงในหน้าเดียวกัน