php my sql
DESCRIPTION
การจัดเก็บข้อมูลใน MY SQLTRANSCRIPT
PHP กบการจดการขอมลใน Mysql การเพมขอมล
ขนท 1 ขนตอนการสรางฐานขอมลและตารางเกบขอมลก าหนด ฐานขอมล ชอ project ตารางชอ member
1. เปดโปรแกรม phpmyadmin เพอสรางฐานขอมล โดยเปด Internet Explorer แลวพมพค าวา localhost
1.1 เลอกท phpMyadmin Database Manager Version 2.10.3 1.2 ใส username เปน root และ password เปน 1234 1.3 สรางฐานขอมลใหม ชอ project แลวกดสราง
2. สรางตารางเกบขอมลสมาชกชอตาราง member จ านวน 3 ฟลด
o ก าหนด mem_id ใหเปน auto_increment และเปนคยหลก o เสรจแลวกดปม บนทก o กด แทรก เพอเพมขอมล
รายละเอยดของตาราง member
3. ท าการเพมขอมลใหตาราง member ดงตวอยาง
o ชองแรกเปนคาของ mem_id ไมตองกรอก เพราะก าหนดเปน auto_increment โปรแกรมฐานขอมลจะท าการเพมใหเอง โดยเรยงล าดบจาก 1 2 3 ตอไปเรอย ๆ
o เมอเพมแลวกด ลงมอ
ขนท 2 สรางเวบเพจ ชอ register.php เพอรบขอมลสมาชก
1. เปดโปรแกรม Dreamweaver 2. ก าหนดคาพนฐานของหนาเวบเพจโดยก าหนดใหสามารถอานภาษาไทยไดทเมน Modify เลอก Page Properties
คลกท Title/Encoding แลวเลอก Encoding เปน Unicode(UTF-8)
3. ใสฟอรมรบคา โดยคลกท Form และเลอกเครองมอ Form ดงภาพ
4. ก าหนด action ของฟอรมเพอสงคาขอมลสมาชกทรบมาไปประมวลทไฟล save_member.php ดงภาพ
5. กลบไปทมมมอง Design แลวคลกในบรเวณกรอบเสนประสแดง ๆ ของฟอรมแลวน าตารางเขามาในฟอรม 4 แถว 2 คอมลมนดงภาพ
o กลองรบขอความ username ก าหนดชอเปน mem_user
o กลองรบขอความ password ก าหนดชอเปน mem_pass กลองนตองเซตให
input type เปน password ดงภาพ
ขนท 3 สรางเวบเพจ ชอ save_member.php เพอน าขอมลทรบจากไฟล register.php บนทกลงตาราง member ในฐานขอมล mysql ขนตอนการท างานของไฟล save_member.php
1. เปดโปรแกรม Dreamweaver สรางไฟลใหม ตงชอเปน save_member.php เกบไวทโฟลเดอร member (สรางโฟลเดอร member ไวในโฟลเดอร www) 2. ลงเมอเขยนโปรแกรมโดยตองเขยนทงหมดอยในแทก php <? …ขนตอนการเขยนตามทอธบาย ================= ?>
<? //ก าหนดตวแปรเกบขอมลเพอการเชอมตอเครอง Database Server $host ="localhost"; $user = "root"; $pass = "1234"; $db = "project";
/*เชอมตอกบเครอง Database Server ดวยฟงกชน mysql_connect(ชอServer,ชอผใช,รหสผาน)*/ mysql_connect($host,$user,$pass) or die ("ตดตอ Server ไมส าเรจ");
/* เลอกฐานขอมล ดวยฟงกชน mysql_select_db(ชอฐานขอมล)*/ mysql_select_db($db) or die ("ตดตอฐานขอมลไมส าเรจ");
// ก าหนดใหการเพมขอมลลงฐานขอมลรบภาษาไทย mysql_query("SET NAMES utf8");
/* เขยนค าสงภาษา SQL เพมขอมลลงตาราง member โดยใชค าสง INSERT INTO ชอตาราง VALUES (คาตองตองการเพมละฟวด)*/ $sql = " insert into member values (NULL,'$mem_user','$mem_pass') ";
/* ประมวลผลค าสง sql โดยใชค าสง mysql_query(ค าสงภาษา SQL)*/ $sql_query=mysql_query($sql);
/*ใชค าสง if เพอตรวจสอบการเพมขอมล ถาส าเรจ ตวแปร $sql_query จะมคาเปนจรง*/ if ($sql_query) {echo "เพมขอมลส ำเรจ";} else {echo " เพมขอมลไมส ำเรจ";}
/*ปดการเชอมตอกบฐานขอมล*/ mysql_close(); ?>
การดผลงาน : 1. เปดโปรแกรม Internet Explorer แลวพมพค าวา localhost/member/register.php 2. กรอกขอมลแลวกดปมตกลง ถาเพมขอมลส าเรจ โปรแกรมจะบอกวา เพมขอมลส าเรจ ถา เพมไมส าเรจ จะบอกวา เพมขอมลไมส าเรจ 3. กรณทเจอความผดพลาด ใหอานตามทบอกไววาทไฟลอะไร บรรทดทเทาไหร แลวเขาไปแกตามนน สวนมากทผดจะลมใสเครองหมายจบประโยคค าสง (;) หรอพมพค าสงผด
หลกการเขยนค าสงภาษา SQL เพอสงใหเพมขอมลลงตาราง member
หมายเหต คาแรกใสเปน NULL เนองจาก เราก าหนดฟวด mem_id ในฐานขอมลใหเปน auto_increment ซงในฐานขอมลจะเพมคาใหเองอตโนมตเรมจาก 1 2 3 ….. เราจงไมใสขอมลอะไรลงไปซงกคอ NULL
การดงขอมลจากตาราง member ออกมาแสดงทหนาเวบเพจ วธท1 ไมใชฟอรม ก าหนดชอไฟล show_member.php
1. เปดโปรแกรม Dreamweaver สรางไฟลใหม ตงชอเปน show_member.php เกบไวทโฟลเดอร member (สรางโฟลเดอร member ไวในโฟลเดอร www) 2. ลงเมอเขยนโปรแกรมโดยตองเขยนทงหมดอยในแทก php <? …ขนตอนการเขยนตามทอธบาย ================= ?> ภาพผลลพธ
<? //ก าหนดตวแปรเกบขอมลเพอการเชอมตอเครอง Database Server $host ="localhost"; $user = "root"; $pass = "1234"; $db = "project"; /*เชอมตอกบเครองดวยฟงกชน mysql_connect(ชอServer,ชอผใช,รหสผาน)*/ mysql_connect($host,$user,$pass) or die ("ตดตอ Server ไมส าเรจ"); /* เลอกฐานขอมล ดวยฟงกชน mysql_select_db(ชอฐานขอมล)*/ mysql_select_db($db) or die ("ตดตอฐานขอมลไมส าเรจ"); /* ก าหนดใหการเพมขอมลลงฐานขอมลรบภาษาไทย */ mysql_query("SET NAMES utf8"); /* เขยนค าสงภาษา SQL เพอดงขอมลออกมาแสดง*/ $sql = "SELECT * FROM member"; /* ประมวลผลค าสง sql โดยใชค าสง mysql_query(ค าสงภาษา SQL)*/ $sql_query=mysql_query($sql); ?> /* เขยน html สรางหวตาราง*/ <table border=1 width=50%> <tr align="center" > <td>ล าดบ</td><td>Username</td><td>Password</td> </tr> /*ใชภาษา php ในการดงขอมลออกมาทละแถวโดยใช ค าสง While เพอวนรอบ และใชค าสง mysql_fetch_array() ดงขอมลจากการคนหามาเกบในตวแปรประเภทอาเรยในทนตงชอตวแปรเปน $array */ <? while($array =mysql_fetch_array($sql_query)) { echo "<tr>"; echo "<td>$array[mem_id]</td>"; echo "<td>$array[mem_user]</td>"; echo "<td>$array[mem_pass]</td>"; echo "</tr>"; } mysql_close(); ?>
</table>
วธท2 ใชฟอรม ก าหนดชอไฟล show_frm.php
1. เปดโปรแกรม Dreamweaver สรางไฟลใหม ตงชอเปน show_member.php เกบไวทโฟลเดอร member (สรางโฟลเดอร member ไวในโฟลเดอร www) 2. ลงเมอเขยนโปรแกรมโดยตองเขยนทงหมดอยในแทก php <? …ขนตอนการเขยนตามทอธบาย ================= ?> ภาพผลลพธ
<? //ก าหนดตวแปรเกบขอมลเพอการเชอมตอเครอง Database Server $host ="localhost"; $user = "root"; $pass = "1234"; $db = "project"; /*เชอมตอกบเครองดวยฟงกชน mysql_connect(ชอServer,ชอผใช,รหสผาน)*/ mysql_connect($host,$user,$pass) or die ("ตดตอ Server ไมส าเรจ"); /* เลอกฐานขอมล ดวยฟงกชน mysql_select_db(ชอฐานขอมล)*/ mysql_select_db($db) or die ("ตดตอฐานขอมลไมส าเรจ"); /* ก าหนดใหการเพมขอมลลงฐานขอมลรบภาษาไทย */ mysql_query("SET NAMES utf8"); /* เขยนค าสงภาษา SQL เพอดงขอมลออกมาแสดง*/ $sql = "SELECT * FROM member"; /* ประมวลผลค าสง sql โดยใชค าสง mysql_query(ค าสงภาษา SQL)*/ $sql_query=mysql_query($sql); ?> /* สรางฟอรมเพอแสดงขอมล ภายในฟอรมจะมตาราง*/ <form> <table border=1 width=50%> <tr align="center" > <td width="5%">ล ำดบท</td><td>Username</td><td>Password</td> </tr> <? while($array =mysql_fetch_array($sql_query)) { echo "<td> <input type =text name=mem_id value=$array[mem_id]> </td>"; echo "<td> <input type =text name=mem_user value=$array[mem_user]> </td>"; echo "<td> <input type =text name=mem_pass value=$array[mem_pass]> </td>"; echo "</tr>"; } mysql_close(); ?> </table> </form> </body> </html>
อธบายเพมเตม
ฟงกชน mysql_fetch_array() :
ดงคาผลลพธทไดจากค าสง mysql_query( ) เกบลงอารเรยเพอน าไปใชงานตอไป
ค าอธบายค าสง
$sql = “SELECT * FROM member”;
$sql_query = mysql_query($sql)
$array =mysql_fetch_array($sql_query)
$array[mem_id] : เกบขอมลของคอลมน mem_id
$array[mem_user] : เกบขอมลของคอลมน mem_user
$array[mem_pass] : เกบขอมลของคอลมน mem_pass
ดงนนถาตองการแสดงผลของคาทอยในตาราง member ออกมาทละแถว จงตองใชค าสง
<? while($array =mysql_fetch_array($sql_query)) { echo "<tr>"; echo "<td>$array[mem_id]</td>"; echo "<td>$array[mem_user]</td>"; echo "<td>$array[mem_pass]</td>"; echo "</tr>"; } mysql_close(); ?>
การสงคาขามเพจโดย QueryString
QueryString ร ??
Querystring ม ลท Browser ต ท าย URL Page ท ต าร ปย Web Server เ น
ม ลท ป ปร บ ปด ย ม ล ล า ม ล า ต ย า ม ลหร ต ปร type_id ล าท ป 1หา ต าร ามา าหน า เ ร หมาย นร ห า ต ปร
http://localhost/edit_type.php?type_id=1
http://localhost/edit_type.php?type_id=1&amount=5
าร าน ม ล า QueryString
าน ด า าต ปรท เราต นมา ด เลย เ น
ามารถ า ด าต ปร ด ด น
echo"$type_id"; ลล 1
ขอส เ เ ลำ ส ร ำ URL จ ไมม เ ร อ มำ $ เ ลำเร ำ อ ม เ ร อ มำ $
http://localhost/edit_type.php?type_id=1
สรำ จำ Tag Link <a href>... </a>
ำ ด บ HREF TAG <a href> </a> ำ ล sam1.html
<html><body>
<a href="sample2.php?name=peanthip">Test Querystring </a> </body></html>
ธ าร ม ลด ย QueryString
ผลล ธ
ล sam2.php<?
echo $name;
?>
คลกทค าวา Test Querystring : แสดงค าวา peanthip
ธ าร ม ลด ย QueryString
เหมอนกนการออกแบบ Form รรมดาแตแตกตางตรง method="get" ตวอยาง
2. ำรสรำ Querystring HTML Form
<form method=“get” action=“show.php”>Username : <input type=“text” name=“user”>password : <input type=“password” name=“pass”><input type=submit name =“submit” value =“ตกลง”><input type=“reset” name =reset value =“ตกลง”></form>
Show.php<?Echo $_GET[user];Echo “<br>”;Echo $_GET[pass];?>
- ต ด าผ าน ททร บ ต Value ท input
ต ย า เ น
<input type =text name=mem_idvalue=$array[mem_id]>
ารด ม ล า าน ม ลมา ด น ร ม
หลกใชฟงกชน include() - ทกไฟลทมการตดตอกบฐานขอมลจะตองด าเนนขนตอนเดยวกนหมดคอ
1. ตดตอเครอง Database Server 2. เลอกฐานขอมลทตองการ
ดงนนเราสามารถสรางไฟลนไวเพอใหไฟลอน ๆ ดงมาใชงานโดยเรยกผานฟงกชน include() เชน
ไฟล connect.php <? $hostname = "localhost"; $user = "root"; $password = ""; $dbname = "project"; mysql_connect($hostname, $user, $password) or die("ตดตอไมได"); mysql_select_db($dbname) or die("ตดตอไมได"); mysql_query("SET NAMES utf8");
?>
ตวอยางไฟล show_member.php <? include("connect.php"); $sql = "select * from member"; $sql_query=mysql_query($sql); ?> <html> <head><title>ขอมลลกคา</title></head> <body> <table border=1 width=30% > <tr align="center" bgcolor="#CCCCFF"> <td>ล าดบท</td><td>Username</td><td>Password</td><td>แกไข</td><td>ลบ</td> </tr> <? while($array =mysql_fetch_array($sql_query)) { echo "<td>$array[mem_id]</td>"; echo "<td>$array[mem_user]</td>"; echo "<td>$array[mem_pass]</td>"; echo "<td><a href='edit_member.php?show_id=$array[mem_id]'>แกไข</a></td>"; echo "<td>ลบ</td>"; echo "</tr>"; } mysql_close(); ?> </table> </body> </html>
การแกไขขอมลผานทางเวบเพจ ไฟลทเกยวของ
ไฟล show_member.php
หลกการ - สงคาตวแปรขามเพจไปยงไฟล show_edit โดยใชเทคนค QueryString - ตวแปรทสงไปคอ show_id โดยคาทเกบในตวแปรนคอ คาของรหสสมาชก (mem_id)ทดงมาเกบไวในตวแปรอารเรย $array[mem_id] โดยเพมค าสงลงค
<a href='edit_member.php?show_id=$array[mem_id]'>แกไข</a>
ไฟล edit_member.php
หลกการ - แสดงขอมลของแถวทมรหสสมาชกทสงคามาจากไฟล show_member.php คอ คา $show_id โดยใชค าสง
$sql = "select * from member where mem_id ='$show_id' "; - ใชฟอรมในการแสดงคาตาง ๆ โดยก าหนดให คาของ value ในแทก input เปนคาขอมลของสมาชกทมรหสตรงกนกบทเลอกมากอนหนานน เชน
<input type =text name=mem_id size = 8 value=$array[mem_id]>
- สงคาตวแปรขามเพจไปยงไฟล save_edit โดยใชเทคนค QueryString - ตวแปรทสงไปคอ edit_id เชน <form action="save_edit.php?edit_id=<?=$show_id?>" method="post">
ไฟล save_edit.php
หลกการ - ใชค าสงแกไขขอมล UPDATE เพอรบขอมลทแกไขใหมจากไฟล show_edit.php ซงจะสงคาตวแปร $edit_id มา $sql = "UPDATE member SET mem_user='$mem_user', mem_pass='$mem_pass' where mem_id='$edit_id' ";
ตวอยาง Code ไฟล show_member.php
<? /* ใชฟงกชน include ดง code สวนของการเชอมตอมาจากไฟล connect.php ทสรางไวแลว*/ include("connect.php"); /* เขยนค าสงภาษา SQL ในดงขอมลจากฐานขอมลออกมา*/ $sql = "select * from member"; /* ด าเนนการตามค าสงใชฟงกชน mysql_query(ค าสงภาษา SQL)*/ $sql_query=mysql_query($sql); ?> <html> <head><title>ขอมลลกคา</title></head> <body> <table border=1 width=30% > <tr align="center" bgcolor="#CCCCFF"> <td>ล าดบท</td><td>Username</td><td>Password</td><td>แกไข</td><td>ลบ</td> </tr> <? while($array =mysql_fetch_array($sql_query)) { echo "<td>$array[mem_id]</td>"; echo "<td>$array[mem_user]</td>"; echo "<td>$array[mem_pass]</td>"; echo "<td><a href='edit_member.php?show_id=$array[mem_id]'>แกไข</a></td>"; echo "<td>ลบ</td>"; echo "</tr>"; } mysql_close(); ?> </table> </body></html>
ตวอยาง Code ไฟล edit_member.php
<? /* ใชฟงกชน include ดง code สวนของการเชอมตอมาจากไฟล connect.php ทสรางไวแลว*/ include("connect.php"); /* เขยนค าสงภาษา SQL ในดงขอมลจากฐานขอมลออกมา*/ $sql = "select * from member where mem_id ='$show_id' "; /* ด าเนนการตามค าสงใชฟงกชน mysql_query(ค าสงภาษา SQL)*/ $sql_query=mysql_query($sql); ?> <form action="save_edit.php?edit_id=<?=$show_id?>" method="post"> <table border=1 width=100 cellpadding=5 cellspacing=0 bordercolor="#CCCCCC"> <tr align="center" bgcolor="#CCCCFF"> <td width="5%">ล าดบท</td><td>Username</td><td>Password</td><td>แกไข</td> </tr> <? while($array =mysql_fetch_array($sql_query)) { echo "<td><input type =text name=mem_id size = 8 value=$array[mem_id]></td>"; echo "<td><input type =text name=mem_user value=$array[mem_user] size = 10></td>"; echo "<td><input type =text name=mem_pass value=$array[mem_pass] size = 10></td>"; echo "<td><input type='submit' name = 'submit' value='แกไข'></td>"; echo "</tr>"; } mysql_close(); ?> </table>
</form> </body> </html>
ตวอยาง code ไฟล save_edit.php <? /* ใชฟงกชน include ดง code สวนของการเชอมตอมาจากไฟล connect.php ทสรางไวแลว*/ include("connect.php");
/* เขยนค าสงภาษา SQL ในการเพมขอมลลงในตารางทตองการ โดยใชค าสง UPDATE ชอตาราง SET ชอฟวดในฐานขอมล =’ชอของกลองรบคาในไฟล edit_member.php’ */ $sql = "UPDATE member SET mem_user='$mem_user', mem_pass='$mem_pass' where mem_id='$edit_id' "; /* ด าเนนการตามค าสงใชฟงกชน mysql_query(ค าสงภาษา SQL)*/ $sql_query=mysql_query($sql); if ($sql_query) {echo "แกไขขอมลส าเรจ";} else {echo " แกไขขอมลไมส าเรจ";} mysql_close(); ?> /* เพมค าสงลงคเพอกลบไปหนาแสดงขอมลผใชทงหมดทเกบไวในไฟล show_member.php*/ <a href="show_member.php">------>> แสดงขอมลทงหมด</a> </body> </html>
การลบขอมล ไฟลชอ delete_member.php
ไฟล show_member.php
หลกการ - สงคาตวแปรขามเพจไปยงไฟล delete_member.php โดยใชเทคนค QueryString - ตวแปรทสงไปคอ delete_id โดยคาทเกบในตวแปรนคอ คาของรหสสมาชก (mem_id) ทดงมาเกบไวในตวแปรอารเรย $array[mem_id] โดยเพมค าสงลงค
<a href='delete_member.php?delete_id=$array[mem_id]'>ลบ</a>
ไฟล delete_member.php
หลกการ - ลบขอมลทของสมาชกทตรงกบรหสทสงมาจากไฟล show_member.php คอ คา $delete_id โดยใชค าสง
$sql = "delete from member where mem_id ='$delete_id' ";
หลกการ 1. เพม code (บนทดทไฮไลทและตวอกษรเอยง) ในไฟล show_member.php เพอท าลงคไปไฟล delete_member.php
<? while($array =mysql_fetch_array($sql_query)) { echo "<td>$array[mem_id]</td>"; echo "<td>$array[mem_user]</td>"; echo "<td>$array[mem_pass]</td>"; echo "<td><a href='edit_member.php?show_id=$array[mem_id]'>แกไข</a></td>";
echo "<td><a href='delete_member.php?delete_id=$array[mem_id]'>ลบ</a></td>"; echo "</tr>"; } mysql_close(); ?>
2. เขยน code ของไฟล delete_member.php ดงน <? include("connect.php"); $sql="delete from member where mem_id='$delete_id'"; $result=mysql_query($sql); if($result) {echo "ลบขอมลส าเรจ";} else{echo "ลบขอมลไมส าเรจ";} ?> ……………………………………………………………………………………………………………………………