เรียนรู้ MySQL4,5 -การรับข้อมูลหน้าเว็บ บันทึกฐานข้อมูล

เรียนรู้ MySQL4,5 -การรับข้อมูลหน้าเว็บ บันทึกฐานข้อมูล

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

หลักการก็ไม่ยาก เราต้องมีไฟล์ 2 ไฟล์ ไฟล์นึงเป็นตัวรับข้อมูลหรือแบบฟอร์มนั่นล่ะครับ อีกไฟล์นึงเป็นตัวบันทึกลงฐานข้อมูล

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

งั้นเราก็มาเริ่มที่การสร้างแบบฟอร์มเพื่อบันทึกกันก่อนครับ

สร้างไฟล์ที่ชื่อ form.htm มีโค้ดดังนี้

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">     <head>         <meta http-equiv="Content-Type" content="text/html; charset=windows-874" />         <title>แบบฟอร์มกรอก ข้อมูล-MeeWebFree.com</title>     </head>     <body>         <form action="mysql_insert_db.php" method="post">             <p>ชื่อเว็บเพื่อนบ้าน:<br />                 <input type="text" name="name" size="8" maxlength="50" value="" />             </p>             <p>URL address:<br />                 <input type="text" name="address" size="25" maxlength="80" value="" />             </p>             <p>                 <input type="submit" name="submit" value="Submit!" />             </p>         </form> </html>

 

ต่อมา สร้างอีกไฟล์นึงที่ชื่อ mysql_insert_db.php นะครับมีโค้ดดังนี้

<?php include ("mysql_connect.php"); $nameforrecord = $_POST[name]; $addressforrecord = $_POST[address]; $query = "INSERT INTO friend set name='$nameforrecord', address='$addressforrecord'"; $result = mysql_query($query); mysql_close(); ?>

จากไฟล์ด้านบนจะเห็นได้ว่ามีบรรทัดเรียกไฟล์ mysql_connect.php ในไฟล์ mysql_connect.php มีโค้ดดังนี้ (หากยังไม่มีแนะนำให้อ่านบทความ http://web.meewebfree.com/site/php-codeigniter/21-insert-data-select-data-from-mysql ก่อนครับ)

<?php mysql_connect("localhost", "root", "1234") or die("เชื่อมต่อไม่สำเร็จ มีข้อมูลผิด"); mysql_select_db("human") or die("เลือกฐานข้อมูลไม่ได้"); mysql_query("SET NAMES 'tis620' "); ?>

เอาล่ะครับ เราก็เตรียมพร้อมแล้ว เริ่มจากการรันไฟล์ form.htm นะครับจะได้

หน้าเว็บสำหรับกรอกข้อมูลเพื่อบันทึกลงฐานข้อมูล

แล้วกรอกข้อมูลแล้วกด submit ครับ

ก็จะไปหน้าว่างๆ แล้ว url สุดท้ายก็จะส่งไปที่ไฟล์ mysql_insert_db.php นั่นเองครับ (หากมีข้อความ error แสดงว่าผิดครับ)
URL ที่ใช้ทดสอบ

ทีนี้เราก็ตามเข้ามาดูใน phpMyAdmin เพื่อดูผลครับ ว่าข้อมูลถูกบันทึกจริงหรือไม่

ข้อมูลถูกบันทึกลงฐานข้อมูลแล้ว

ทีนี้มาดูการทำงานกันครับ ว่าทำงานกันอย่างไร
เริ่มจาก form.htm
หน้านี้ไม่มีอะไรมากเลยครับ นอกจาก แบบฟอร์มนั่นเอง และเมื่อกดปุ่ม submit ค่าทั้งหมดจะถูกส่งข้ามหน้าไปยังปลายทางที่ระบใน action="...." นั่นล่ะครับ ที่นี้เราให้ส่งไปที่ mysql_insert_db.php มันก็ส่งไปที่ไฟล์นี้ครับ

ต่อมา ไฟล์ของ mysql_insert_db.php
หน้าที่ของไฟล์นี้คือการดึงข้อมูลออกมาจากหน้า form นะครับ สังเกตุ
$nameforrecord = $_POST[name];
$addressforrecord = $_POST[address];

สองบรรทัดนี้คือการดึงตัวแปร ออกมาจาก name และ address เพื่อไปใส่ตัวแปร nameforrecord และ addressforrecord ครับ โดยสังเกตุหน้า form นั้น มีการส่งเป็นแบบ POST หน้านี้จึงต้องดึงข้อมูลแบบ POST เช่นกันครับ
ต่อมาก็คือส่วนของบันทึกข้อมูล ซึ่งก็เหมือนกันกับบทความก่อนหน้านี้ของเรานั่นเอง เพียงแต่เปลี่ยนค่าที่ให้เป็นชื่อตัวแปรแทน ในบรรทัดนี้ครับ
$query = "INSERT INTO friend set name='$nameforrecord', address='$addressforrecord'";

จบแล้วครับ สำหรับเรื่องของการบันทึกข้อมูลจากหน้าเว็บเข้าฐานข้อมูล มีแค่นี้เอง.... สำหรับการเรียกดูผล ก็อ่านจากบทความ การบันทึก การเรียกแสดงผล ได้นะครับ หรือว่าใช้โค้ดนี้ครับ
โค้ดแสดงผล mysql_query_select.php

<?php include ("mysql_connect.php"); $query = "SELECT * FROM friend ORDER BY name"; $result = mysql_query($query); while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {     $namedis = $row['name'];     $addressdis = $row['address'];     echo "เว็บ เพื่อนบ้าน : $namedis ($addressdis) <br />"; } ?>

ก็หมดแล้ว สำหรับการ รับข้อมูลจากแบบฟอร์มหน้าเวบ การบันทึกข้อมูล และการแสดงผล......
มันมีเท่านี้จริงๆนะครับ ไม่ได้ยากอะไร แต่!!! ถ้าคุณไม่รู้เรื่อง PHP HTML ล่ะก็..... หุๆๆๆๆ เหนื่อยแน่นอนครับ

ท้ายนี้ก็หวังว่าจะเป็นประโยชน์กันนะครับ บทความนี้น่าจะใช้ได้อย่างน้อย 2 ปีแน่นอนครับคงไม่น่าจะมีการเปลี่ยนแปลงอะไรในวงการ MySQL ในช่วงนี้แน่ (จะมีก็แต่เป็น MySQL6 แต่ว่าก็น่าจะเหมือนกันอีกนั่นล่ะครับ)

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

ไม่มีอะไรยากเกินความพยายามครับ ถ้าไม่ท้อก่อน มันก็ต้องสำเร็จ

Create: Modify : 2010-04-16 23:22:09 Read : 20900 URL :