ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
PHP:Hypertext Preprocessor
เพิ่มเติม เขียน PHP ติดต่อฐานข้อมูล MS-Access PHP:Hypertext Preprocessor โหลดไฟล์ที่ สัญญา เครือหงษ์ ภาควิชาวิทยาการคอมพิวเตอร์และเทคโนโลยีสารสนเทศ คณะวิทยาศาสตร์ มหาวิทยาลัยนเรศวร
2
วัตถุประสงค์การเรียนรู้ประจำบท
3
เริ่มต้นการติดต่อกับ Access
ก่อนที่เราจะติดต่อกับฐานข้อมูลจริง ต้องรู้จักกับฟังก์ชั่นเหล่านี้ก่อน ซึ่งมีความจำเป็นมาก ๆ ในการใช้งาน
4
การที่เราจะเขียน php ติดต่อกับฐานข้อมูล Microsoft Access เราจะต้องติดตอผ่าน ODBC ซึ่งเป็น Driver ของการเชื่อมต่อฐานข้อมูล ซึ่งการติดต่อผ่าน ODBC จะต้องมีการ Set ชื่อ DSN เพื่อเป็นชื่ออ้างอิงในการติดต่อกับฐานข้อมูลนั้น ๆ สามารถศึกษาได้ที่หัวข้อถัดจากนี้
5
การ SET DSN เพื่อติดต่อกับ ACCESS
ก่อนที่เราจะ Set Dsn เราต้องมีฐานข้อมูลก่อน รู้จะ Path และ ที่อยู่ของฐานข้อมูล ในที่นี้ ฐานข้อมูลผมอยู่ที่ C:\Appserv\www\web\database.mdb เริ่มกันเลยครับ ผมจะแบ่งเป้น 2 ประเภทครับ คือ - การ Set บน Win95,Win98,WinMe เมนู Start > Sitting > Control Panel เลือก ODBC Datasources (32Bit) 1. ดับเบิ้ลคลิก
7
2. เลือก Add จากนั้นเลือก Microsoft Access Driver (*.mdb) -> Finish
8
กำหนด ชื่อ DSN เป็น customer และ เลือก Select เพื่อ ทำการอ้างอิงไฟล์ฐานข้อมูล
9
- การ Set บน WinXP,NT, เมนู Start > Sitting > Control Panel > Administrative Tool เลือก Data Sources (ODBC) 1. ดับเบิ้ลคลิก เลือก Tab System DSN และเลือก > Add จากนั้นเลือก Driver do Microsoft Access Driver (*.mdb) -> Finish
10
กำหนด ชื่อ DSN เป็น customer และ เลือก Select เพื่อ ทำการอ้างอิงไฟล์ฐานข้อมูล
11
ตอนที่ 1 การแสดงคุณสมบัติต่าง ๆ ของตาราง
ฐานข้อมูล C:\Appserv\www\web\database.mdb ซื่อตาราง Customer
12
การแสดงชื่อและจำนวนฟิวส์ของตาราง customer
<? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql = "select * from customer"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); $num_field = odbc_num_fields($execute); for ($I=1; $I<= $num_field; $I++) { echo $I. ". ฟิวส์ <b> ".odbc_field_name($execute, $I)."</b> ชนิดของข้อมูลเป็น <b> odbc_field_type($execute, $I)"."</b><br>"; } odbc_close($connect); ?> php4-1.php Out Put 1. ฟิวส์ id ชนิดของข้อมูลเป็น COUNTER 2. ฟิวส์ name ชนิดของข้อมูลเป็น VARCHAR 3. ฟิวส์ surname ชนิดของข้อมูลเป็น VARCHAR
13
ตอนที่ 2 การนำข้อมูลจากตารางมาแสดง
ฐานข้อมูล C:\Appserv\www\web\database.mdb ชื่อตาราง customer
14
การนำข้อมูลจากตารางมาแสดง
<? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql = "select * from customer"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); ?> <table border="1" width="371"> <tr> <td width="32"> <div align="center">id</div> </td> <td width="132"> <div align="center">name</div> </td> <td width="185"> <div align="center">surname</div> </td> </tr> <? $i=1; while(odbc_fetch_row($execute,$i)) { php4-2.php
15
echo "<tr bgcolor=#FFFF99>"; }else{
$id=odbc_result($execute,"id"); $name=odbc_result($execute,"name"); $surname=odbc_result($execute,"surname"); ?> <tr> <td width="35"> <div align="center"> <? echo "$id"; ?> </div> </td> <td width="129"> <? echo "$name"; ?> </td> <td width="184"> <? echo "$surname"; ?> </td> </tr> </table> <? $i++; } ?> <? odbc_close($connect); ?> <? if ($i%2==0) { echo "<tr bgcolor=#FFFF99>"; }else{ echo "<tr bgcolor=#FFCCCC>"; }?> //เพื่อสลับสีแถว ให้เขียนทับ <tr>
16
Out Put
17
ตอนที่ 3 การเพิ่มข้อมูลลงในตาราง
ฐานข้อมูล C:\Appserv\www\web\database.mdb
18
รูปแบบ insert ino ชื่อตาราง (ฟิวส์1,ฟิวส์2,ฟิวส์3...) values ('ค่า1','ค่า2','ค่า3',...) <? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); /* จะเห็นว่า code ข้างล่างไม่ได้มีการเพิ่มฟิวส์ id เพราะ id ชนิดของข้อมูลเป็น Auto number */ $sql = "insert into customer (name,surname) values ('นายวีระชัย ','นุกิจรัมย์')"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); odbc_free_result($execute); odbc_close($connect); ?> php4-3.php
19
Add ผ่าน Form php4-4.php <html> <body> <form name="form1" method="post" action=“php4-4-2.php”> Name <input type="text" name="name"> Surname <input type="text" name="surname"> <input type="submit" name="Submit" value="Submit"> </form> </body> </html>
20
php4-4-2.php <? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); /* จะเห็นว่า code ข้างล่างไม่ได้มีการเพิ่มฟิวส์ id เพราะ id ชนิดของข้อมูลเป็น Auto number */ $sql = "insert into customer (name,surname) values (‘$name’,’$surname’)"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); odbc_free_result($execute); odbc_close($connect); echo"ได้ทำการบันทึกข้อมูลเรียบร้อยแล้ว "; ?>
21
ตอนที่ 4 การค้นหาข้อมูลจากตาราง
ฐานข้อมูล C:\Appserv\www\web\database.mdb
22
php4-5.php <html> <body> <form name="form1" method="post" action=""> กรุณากรอกชื่อที่ต้องการค้นหา <input type="text" name="search_name" value="<?=$search_name;?>"> <input type="submit" name="Submit" value="Search"> </form> <? if(empty($search_name)) { ?><hr> กรุณากรอกข้อมูลด้วยครับ <? } else { $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql = "select * from customer Where name like '%$search_name%'"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); ?>
23
<table border="1" width="371"> <tr> <td width="32"> <div align="center">id</div> </td> <td width="132"> <div align="center">name</div> </td> <td width="185"> <div align="center">surname</div> </td> </tr> <? $i=1; while(odbc_fetch_row($execute,$i)) { $id=odbc_result($execute,"id"); $name=odbc_result($execute,"name"); $surname=odbc_result($execute,"surname"); ?> php4-5.php ต่อ
24
<table border="1" width="370"> <tr> <td width="35"> <div align="center"> <? echo "$id"; ?> </div> </td> <td width="129"> <? echo "$name"; ?> </td> <td width="184"> <? echo "$surname"; ?> </td> </tr> <? $i++; } ?> </table> <? odbc_close($connect); } ?> </body> </html> php4-5.php ต่อ
25
เพิ่มเติมครับ หากต้องการค้นหานามสกุลด้วยให้เปลี่ยนเป็น $sql = "select
** เพิ่มเติมครับ หากต้องการค้นหานามสกุลด้วยให้เปลี่ยนเป็น $sql = "select * from customer Where name like '%$search_name%' or surname like '%ค่าหรือตัวแปรที่ต้องการค้นหา%'"; Out Put
27
ตอนที่ 5 การแก้ข้อมูลในตาราง
ฐานข้อมูล C:\Appserv\www\web\database.mdb ชื่อตาราง customer php4-6.php xxx แก้ไข php4-7.php Form แก้ไข xxx xxx ดึงข้อมูลที่เลือกมาแก้ไข xxx บันทึกลงฐานข้อมูล php4-8.php
28
<? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql = "select * from customer"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); ?> <table border="1" width="451"> <tr> <td width="36"> <div align="center">id</div> </td> <td width="125"> <div align="center">name</div> </td> <td width="210"> <div align="center">surname</div> </td> <td width="52"> <div align="center">แก้ไข</div> </td> </tr> <? php4-6.php
29
$i=1; while(odbc_fetch_row($execute,$i)) { $id=odbc_result($execute,"id"); $name=odbc_result($execute,"name"); $surname=odbc_result($execute,"surname"); ?> <table border="1" width="451"> <tr> <td width="37"> <div align="center"> <? echo "$id"; ?> </div> </td> <td width="122"> <? echo "$name"; ?> </td> <td width="212"> <? echo "$surname"; ?> </td> php4-6.php ต่อ
30
php4-6.php ต่อ <td width="52"> <div align="center"><a href=“php4-7.php?id=<?=$id;?>">แก้ไข</a></div> </td> </tr> <? $i++; } ?> </table> <? odbc_close($connect); ?> Out Put
31
<? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql="SELECT * FROM customer Where id=$id"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); $id=odbc_result($execute,"id"); $name=odbc_result($execute,"name"); $surname=odbc_result($execute,"surname"); odbc_close($connect); ?> <html> <body> <form name="form1" method="post" action=“php4-8.php"> Name <input type="text" name="name" value="<?=$name;?>"> Surname <input type="text" name="surname" value="<?=$surname;?>"> <input type="submit" name="Submit" value="Update"> <input type="hidden" name="id" value="<?=$id;?>"> </form> </body> </html> php4-7.php Out put
32
<? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql = "update customer set name='$name',surname='$surname' where id=$id"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); odbc_close($connect); echo"ได้ทำการ แก้ไขข้อมูลเรียบร้อยแล้ว "; ?> php4-8.php Out Put ได้ทำการ แก้ไขข้อมูลเรียบร้อยแล้ว
33
ตอนที่ 6 การลบข้อมูลในตางราง
ฐานข้อมูล C:\Appserv\www\web\database.mdb ชื่อตาราง customer
34
<? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql = "select * from customer"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); ?> <table border="1" width="451"> <tr> <td width="36"> <div align="center">id</div> </td> <td width="125"> <div align="center">name</div> </td> <td width="210"> <div align="center">surname</div> </td> <td width="52"> <div align="center">ลบ</div> </td> </tr> </table> <? $i=1; while(odbc_fetch_row($execute,$i)) { $id=odbc_result($execute,"id"); $name=odbc_result($execute,"name"); $surname=odbc_result($execute,"surname"); ?> php4-9.php
35
<table border="1" width="451"> <tr> <td width="37"> <div align="center"> <? echo "$id"; ?> </div> </td> <td width="122"> <? echo "$name"; ?> </td> <td width="212"> <? echo "$surname"; ?> </td> <td width="52"> <div align="center"><a href=“php4-10.php?id=<?=$id;?>">ลบ</a></div> </td> </tr> </table> <? $i++; } ?> <? odbc_close($connect); ?> php4-9.php ต่อ Out Put
36
ได้ทำการ ลบข้อมูลเรียบร้อยแล้ว
<? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql = "delete from customer where id=$id"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); odbc_close($connect); echo"ได้ทำการ ลบข้อมูลเรียบร้อยแล้ว "; ?> php4-10.php Out Put ได้ทำการ ลบข้อมูลเรียบร้อยแล้ว
37
ตัวอย่างการสร้างระบบ Login โดยใช้ฐานข้อมูล
ฐานข้อมูล C:\Appserv\www\web\database.mdb ตารางชื่อ Customer php4-11.php User : xxxx Password : ****** Login Cancel php4-12.php ยินดีต้อนรับคุณ..xx.สู่เมนูหลัก
38
php4-11.php <FORM METHOD=POST ACTION="php4-12.php">
User: <INPUT TYPE="text" NAME=“user"><BR> Password:<INPUT TYPE="Password" NAME=“pass"><BR> <INPUT TYPE="submit" value="Login"> <INPUT TYPE="reset" value=“Cancel"> </FORM> Output User : xxxx Password : ****** Login Cancel
39
ยินดีต้อนรับคุณ..xx.สู่เมนูหลัก
<? $dsn_name = "customer"; $username =""; $password =""; $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql="SELECT * FROM customer Where user='$user' and password='$pass'"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); $id=odbc_result($execute,"id"); $name=odbc_result($execute,"name"); $surname=odbc_result($execute,"surname"); odbc_close($connect); ?> <html> <body> <?if(empty($id)) { echo " ไม่พบข้อมูล"; } else {?> ยินดีต้อนรับ <B>คุณ<?=$name;?><?=$surname;?></B>.. สู่เมนูหลัก <?}?></body> </html> php4-12.php ยินดีต้อนรับคุณ..xx.สู่เมนูหลัก Output
40
ตัวอย่างการสร้างระบบ Login โดยใช้ฐานข้อมูล และใช้ MD5 ในการเข้ารหัส
ในที่นี้เพื่อเข้ารหัสพาสเวิร์ดเฉยๆ แต่ User ก้ยังจำ Password ของตัวเองปกติ เช่น ถ้ากำหนด “1234” เมื่อเข้ารหัสด้วย MD5 แล้วจะได้ “81dc9bdb52d04dc20036dbd8313ed055” เป็นต้น <? $dsn_name = "customer"; $username =""; $password =""; $pass1=md5($pass); // pass คือชื่อที่ตั้งจาก textbox ประเภท password $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); /* จะเห็นว่า code ข้างล่างไม่ได้มีการเพิ่มฟิวส์ id เพราะ id ชนิดของข้อมูลเป็น Auto number */ $sql = "insert into customer (user,password) values (‘$user’,’$pass1’)"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); odbc_free_result($execute); odbc_close($connect); echo"ได้ทำการบันทึกข้อมูลเรียบร้อยแล้ว "; ?>
41
ยินดีต้อนรับคุณ..xx.สู่เมนูหลัก
ตัวอย่างการสร้างระบบ Login โดยใช้ฐานข้อมูล และใช้ MD5 ในการเข้ารหัส (ต่อ) Userform.php User : xxxx Password : ****** Login Cancel checkuser.php ยินดีต้อนรับคุณ..xx.สู่เมนูหลัก แต่ตอนสั่งเก็บข้อมูลหรือสมัครสมาชิกให้ใช้ฟังก์ชั่น MD5 ตรงฟิลดิ์ Password ซึ่งรองรับข้อมูล 128bits ดังนั้นตรง password อาจจะต้องกำหนดขนาดให้มากขึ้น
42
ตัวอย่างการสร้างระบบ Login โดยใช้ฐานข้อมูล และใช้ MD5 ในการเข้ารหัส (ต่อ)
Userform.php <FORM METHOD=POST ACTION=“checkuser.php”> User: <INPUT TYPE="text" NAME=“user"><BR> Password:<INPUT TYPE="Password" NAME=“pass"><BR> <INPUT TYPE="submit" value="Login"> <INPUT TYPE="reset" value=“Cancel"> </FORM> Output User : xxxx Password : ****** Login Cancel
43
ยินดีต้อนรับคุณ..xx.สู่เมนูหลัก
<? $dsn_name = "customer"; $username =""; $password =""; $pass1=md5($pass); // ใช้ MD5 $connect= odbc_connect($dsn_name, $username, $password) or die("ติดต่อ DSN ไม่ได้"); $sql="SELECT * FROM customer Where user='$user' and password='$pass1'"; $execute = odbc_exec($connect, $sql) or die ("เอ็กซิคิวส์คำสั่งไม่ได้"); $id=odbc_result($execute,"id"); $name=odbc_result($execute,"name"); $surname=odbc_result($execute,"surname"); odbc_close($connect); ?> <html> <body> <?if(empty($id)) { echo " ไม่พบข้อมูล"; } else {?> ยินดีต้อนรับ <B>คุณ<?=$name;?><?=$surname;?></B>.. สู่เมนูหลัก <?}?></body> </html> checkuser.php ยินดีต้อนรับคุณ..xx.สู่เมนูหลัก Output
44
อ้างอิง
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.