Transcript ppt

บทที่ 6
MySQL + phpMyAdmin
1
MySQL
คือ ระบบจัดการฐานข้อมูล (DBMS : DataBase Management System)
สาหรับจัดการฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ซึ่งข้อมูลเก็บอยูใ่ น
รู ปของตารางที่มีความสัมพันธ์กนั
การใช้งาน MySQL ใช้รูปแบบของ Command Line ที่ตอ้ งพิมพ์คาสัง่
ผ่านทาง DOS command
2
phpMyAdmin
คือ เครื่ องสาหรับช่วยในการใช้งาน MySQL โดยไม่ตอ้ งพิมพ์ที่ละคาสัง่
ผ่านทาง DOS command แต่สามารถติดต่อผ่านทาง Window Interface ได้
ผูใ้ ช้สามารถสร้างและแก้ไขฐานข้อมูล ผ่านทาง phpMyAdmin ได้ แต่สาหรับ
การทางานบางอย่างยังคงต้องทางานผ่านทาง DOS command
3
เรียกใช้ phpMyAdmin
4
สร้ างตารางชื่อ stu_table
3 columns = 3 fields
Primary key
4 rows
=
4 records
รหัสนักศึกษา
(id)
001
ชื่อ
(firstname)
กาญจนา
นามสกุล
(lastname)
ชมมนาถ
002
ลลิต
นารายณ์
003
สายสมร
งามตา
004
สมชาย
พนาไพร
5
Type (ชนิดข้ อมูล)
ชนิด
อธิบาย
INTEGER
ตัวเลขจานวนเต็ม
FLOAT
ตัวเลขจานวนจริ ง
CHAR
ตัวอักษร
VARCHAR
ตัวอักษร ประหยัดพื้นที่กว่า CHAR
DATE
วันที่ YYYY-MM-DD
TIME
เวลา HH:MM:SS
DATETIME
วันที่และเวลา YYYY-MM-DDHH:MM:SS
6
แบบฝึ กหัด ข้ อ1 ทาเองทีบ่ ้ าน
1. สร้างฐานข้อมูลชื่อ car_db ที่ประกอบด้วยตาราง 1 ตารางชื่อ car_detail
ดังนี้
car_num
color
brand
98732
red
Toyota
15632
green
Honda
54796
blue green
Benz
36246
black
Bmw
7
แบบฝึ กหัด ข้ อ 2-3 ลองทาในห้ อง
2. จาก ER-Diagram จงสร้างฐานข้อมูลชื่อ student_db ที่ประกอบด้วย
ตาราง 2 ตาราง stu_detail และ major ดังนี้
m_id
stu_id
name
stu_detail
N
study_in
1
m_name
major
surname
telephone
tall
8
แบบฝึ กหัด
2. (ต่อ)
stu_detail
stu_id
4712030001
name
Anna
surname telephone
Jhon
09-2549632
tall
160
m_id
2
4712030002
4712030003
4712030004
4712030005
4712030006
April
Bill
Nancy
Tom
Tim
Smith 045-369875
Simson 02-3698547
Soili
04-9874563
Minan 01-5478963
Wakol 045-6985214
170
165
155
182
145
3
1
3
2
1
9
แบบฝึ กหัด
2. (ต่อ)
major
m_id
1
m_name
Animal
2
3
Pla
Crop
10
แบบฝึ กหัด
3. จากฐานข้อมูลในข้อ 2 student_db ให้ทาการเพิ่ม/ลบ/แก้ไขข้อมูล
ในแต่ละตาราง ดังต่อไปนี้
major
เพิ่ม
แก้ไข
m_id
4
m_name
Food Science
5
ITAR
m_id
2
m_name
Plant
11
แบบฝึ กหัด
3. (ต่อ)
stu_detail
เพิ่ม
stu_id
4712030007
name
Evan
surname telephone
Nimi 045-3659871
tall
159
m_id
5
4712030008
4712030009
4712030010
4712030011
4712030012
Andrew
Masha
Big
Gill
Shara
Ohawa 04-0926832
Pomm 044-987563
Famach 045-985632
Sooth 01-5687532
Renam 043-7894521
164
173
154
162
166
4
1
5
4
1
12
แบบฝึ กหัด
3. (ต่อ)
stu_detail
ลบ
stu_id
4712030002
4712030003
4712030006
name
April
Bill
Tim
surname telephone
Smith 045-369875
Simson 02-3698547
Wakol 045-6985214
tall
170
165
145
m_id
3
1
1
13
แบบฝึ กหัด
3. (ต่อ)
stu_detail
แก้ไข
stu_id
4712030001
name
Ann
4712030004
4712030005
Maya
Ed
surname telephone
Jhon
09-2549456
Soili
Minan
053-987563
01-5478963
tall
160
m_id
2
155
182
4
5
14
SQL
SQL คือ ภาษาที่ใช้สาหรับจัดการฐานข้อมูลเชิงสัมพันธ์
คาสั่ งในภาษา SQL
-
SELECT
INSERT
UPDATE
DELETE
ในเงื่อนไข (condition)
ค่าของฟิ ลด์ที่เป็ นตัวอักษรต้องอยูภ่ ายใต้เครื่ องหมาย single quote ‘ ’
ค่าของฟิ ลด์ที่เป็ นเลขไม่ตอ้ งมีเครื่ องหมายกากับ
15
SQL : SELECT
SELECT field_name1, field_name2
รู ปแบบ
FROM table_name
WHERE condition1 [AND condition2]
ORDER BY field_name1, field_name2 ASC/DESC
field_name1, field_name2 : ชื่อฟิ ลด์ที่ตอ้ งการ
- ถ้ามีมากกว่า 1 ฟิ ลด์คนั่ ด้วย ,
- ถ้าต้องการทุกฟิ ลด์ในตารางใช้ *
table_name : ชื่อตารางที่ตอ้ งการดึงข้อมูล
condition1 condition2 : เงื่อนไขในการดึงข้อมูล เช่น stu_id=‘001’ tall=160
ORDER BY field_name : การเรี ยงลาดับข้อมูลตามชื่อฟิ ลด์ที่ระบุ
ASC เรี ยงจากน้อยไปหามาก
16
DESC เรี ยงจากมากไปหาน้อย
SQL : SELECT
ตัวอย่าง
SELECT *
FROM stu_detail
SELECT *
FROM stu_detail
ORDER BY stu_id
SELECT *
FROM stu_detail
ORDER BY stu_id DESC
17
SQL : SELECT
ตัวอย่าง
SELECT *
FROM stu_detail
ORDER BY name,surname
SELECT telephone,m_id
FROM stu_detail
WHERE name=‘Ann’
18
SQL : SELECT
ตัวอย่าง
SELECT name,surname
FROM stu_detail
WHERE tall=160
SELECT name,surname
FROM stu_detail
WHERE tall>=160
SELECT telephone,m_id
FROM stu_detail
WHERE name<>‘Ann’
AND tall>=160
19
SQL : SELECT
ตัวอย่าง
SELECT name,surname,m_name
FROM stu_detail,major
WHERE stu_detail.m_id=major.m_id
ORDER BY m_name,name,surname
20
SQL : INSERT
รู ปแบบ
INSERT INTO table_name(field_names)
VALUES (field_values)
field_name : ชื่อฟิ ลด์ที่ตอ้ งการ ถ้ามีมากกว่า 1 ฟิ ลด์คนั่ ด้วย ,
table_name : ชื่อตารางที่ตอ้ งการดึงข้อมูล
field_values : ค่าที่กาหนดให้แต่ละฟิ ลด์ เรี ยงลาดับตาม
field_name
- คัน่ ด้วย ,
- ถ้าเป็ นตัวอักษรอยูภ่ ายใต้ ‘’ ตัวเลขไม่ตอ้ งมี ‘’
21
SQL : INSERT
ตัวอย่าง
INSERT INTO major(m_id,m_name)
VALUES (6,‘general’)
INSERT INTO major(m_name, m_id)
VALUES (‘general’,6)
INSERT INTO major
VALUES (6,‘general’)
22
SQL : UPDATE
รู ปแบบ UPDATE table_name
SET field_name1=‘field_value1’, field_name2=‘field_value2’
WHERE condition
field_name : ชื่อฟิ ลด์ที่ตอ้ งการแก้ไขค่า
field_values : ค่าที่กาหนดให้ฟิลด์ field_name
table_name : ชื่อตารางที่ตอ้ งการดึงข้อมูล
condition : เงื่อนไขในการดึงข้อมูล เช่น stu_id=‘001’
23
SQL : UPDATE
ตัวอย่าง
UPDATE major
SET m_name=‘general agriculture’
WHERE m_id=6
UPDATE major
SET m_name=‘general agriculture’
24
SQL : DELETE
รู ปแบบ
DELETE FROM table_name
WHERE condition
table_name : ชื่อตารางที่ตอ้ งการดึงข้อมูล
condition : เงื่อนไขในการดึงข้อมูล เช่น stu_id=‘001’
25
SQL : DELETE
ตัวอย่าง
DELETE FROM major
WHERE m_id=6
26
แบบฝึ กหัด ข้ อ 2-3 ลองทาในห้ อง
4. จาก ER-Diagram สร้างฐานข้อมูลชื่อ new_student_db ที่
ประกอบด้วยตาราง 2 ตาราง stu_detail และ major ดังนี้
m_id
stu_id
name
stu_detail
N
study_in
1
m_name
major
surname
telephone
tall
27
แบบฝึ กหัด
4. (ต่อ)
stu_detail
stu_id
4712030001
name
Anna
surname telephone
Jhon
09-2549632
tall
160
m_id
2
4712030002
4712030003
4712030004
4712030005
4712030006
April
Bill
Nancy
Tom
Tim
Smith 045-369875
Simson 02-3698547
Soili
04-9874563
Minan 01-5478963
Wakol 045-6985214
170
165
155
182
145
3
1
3
2
1
28
แบบฝึ กหัด
4. (ต่อ)
major
m_id
1
m_name
Animal
2
3
Pla
Crop
29
แบบฝึ กหัด
5. จากฐานข้อมูลในข้อ 4 new_student_db ให้ทาการเพิ่ม/ลบ/แก้ไขข้อมูล
ในแต่ละตาราง ดังต่อไปนี้ โดยใช้ภาษา SQL
major
เพิ่ม
แก้ไข
m_id
4
m_name
Food Science
5
ITAR
m_id
2
m_name
Plant
30
แบบฝึ กหัด
5. (ต่อ)
stu_detail
เพิ่ม
stu_id
4712030007
name
Evan
surname telephone
Nimi 045-3659871
tall
159
m_id
5
4712030008
4712030009
4712030010
4712030011
4712030012
Andrew
Masha
Big
Gill
Shara
Ohawa 04-0926832
Pomm 044-987563
Famach 045-985632
Sooth 01-5687532
Renam 043-7894521
164
173
154
162
166
4
1
5
4
1
31
แบบฝึ กหัด
5. (ต่อ)
stu_detail
ลบ
stu_id
4712030002
4712030003
4712030006
name
April
Bill
Tim
surname telephone
Smith 045-369875
Simson 02-3698547
Wakol 045-6985214
tall
170
165
145
m_id
3
1
1
32
แบบฝึ กหัด
5. (ต่อ)
stu_detail
แก้ไข
stu_id
4712030001
name
Ann
4712030004
4712030005
Maya
Ed
surname telephone
Jhon
09-2549456
Soili
Minan
053-987563
01-5478963
tall
160
m_id
2
155
182
4
5
33
Import ข้ อมูลลงตาราง
1. สร้าง / เลือก ฐานข้อมูล และ ตารางที่ตอ้ งการนาข้อมูลเข้า (import data)
2. เลือกแทบ SQL
3. พิมพ์ภาษา SQL สาหรับการนาเข้าข้อมูลดังรู ปแบบต่อไปนิ้
34
Import ข้ อมูลลงตาราง
LOAD DATA LOCAL INFILE
' parth and file name'
INTO TABLE table_name
FIELDS TERMINATED BY 'field_terminator '
LINES TERMINATED BY 'line_terminator';
parth and file name
field_terminator
line_terminator
พาร์ท และ ชื่อไฟล์ เช่น d:/my_data/data.txt
d:/my_data/data.xls
อักขระคัน่ ระหว่างแต่ละฟิ ลด์ของไฟล์ที่จะ import เข้ามา
เช่น , ; \t (tab)
อักขระคัน่ ระหว่างแต่แถว (row) ของไฟล์ที่จะ import เข้ามา
เช่น \n (new line)
35
Import ข้ อมูลลงตาราง
ตัวอย่าง
LOAD DATA LOCAL INFILE
'd:/my_data/province.txt'
INTO TABLE province
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
36
Export ข้ อมูลลงตาราง
Export เป็ นไฟล์ .txt
1. เลือกฐานข้อมูล และ ตารางที่ตอ้ งการนาข้อมูลออก
2. เลือกแทบ SQL
3. พิมพ์ภาษา SQL สาหรับการนาออกข้อมูลดังรู ปแบบต่อไปนิ้
37
Export
SELECT
SELECT field_name
FROM table_name
WHERE condition
ORDER BY field_name ASC/DSCD
INTO OUTFILE 'parth and file name'
FIELDS TERMINATED BY 'field_terminator'
LINES TERMINATED BY 'line_terminator' ;
path and file name พาร์ท และ ชื่อไฟล์ เช่น d:/my_data/data.txt d:/my_data/data.xls
ต้องมีชื่อ ไดร้ และ พาร์ ท ไว้ก่อนแล้ว แต่ไม่มีชื่อไฟล์
field_terminator
อักขระคัน่ ระหว่างแต่ละฟิ ลด์ของไฟล์ที่ได้จากการ export
เช่น , ; \t (tab)
line_terminator
อักขระคัน่ ระหว่างแต่แถว (row) ของไฟล์ที่ได้จากการ export
38
เช่น \n (new line)
Export
ตัวอย่าง
SELECT prov_id,prov_name
FROM province
INTO OUTFILE 'd:/my_data/province_export.txt'
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
39
Export and Import ข้ อมูลทั้งฐานข้ อมูล
1)Export เป็ นภาษา SQL สาหรับนาไป import ลงเครื่ องอื่นได้
1. เลือกฐานข้อมูล / ตารางที่ตอ้ งการนาข้อมูลออก
2. เลือกแทบ ‘ส่ งออก’
3. คลิก ‘ส่ งมาเป็ นไฟล์’ เพื่อเก็บลงไฟล์นาไป import ได้
2)Import จากภาษา SQL
1. สร้างฐานข้อมูล
2. เลือกแทบ ‘SQL’
3. เลือกไฟล์ภาษา SQL ที่ได้จากการ Export
40
การติดต่ อฐานข้ อมูล
คาสัง่ สาหรับติดต่อ mysql
conn_var_name=mysql_connect('host','user_name','password');
conn_var_name : ตัวแปรสาหรับติดต่อ MySql เก็บค่า true / false
true กรณี ที่ติดต่อ MySql สาเร็ จ
false กรณี ที่ติดต่อ MySql ไม่สาเร็ จ
host
: ชื่อ server
user_name
: ชื่อผูใ้ ช้
password
: รหัสผ่าน
41
การติดต่ อฐานข้ อมูล
คาสัง่ สาหรับติดต่อ mysql
ตัวอย่าง
$MyConn=mysql_connect('localhost','root','');
if(!$MyConn)
{
echo "false to connect to MySql";
exit;
}
42
การติดต่ อฐานข้ อมูล
คาสัง่ สาหรับติดต่อฐานข้อมูล
db_var_name=mysql_select_db("db_name");
db_var_name : ตัวแปรสาหรับติดต่อฐานข้อมูล เก็บค่า true / false
true กรณี ที่ติดต่อฐานข้อมูลสาเร็ จ
false กรณี ที่ติดต่อฐานข้อมูลไม่สาเร็ จ
db_name : ชื่อฐานข้อมูล
43
การติดต่ อฐานข้ อมูล
คาสัง่ สาหรับติดต่อฐานข้อมูล
ตัวอย่าง
$MyDb=mysql_select_db("person_db");
if(!$MyDb)
{
echo "cann't find the database";
exit;
}
44
การติดต่ อฐานข้ อมูล
คาสัง่ สาหรับรันภาษา sql
query_var=mysql_query(sql_var);
query_var
sql_var
: ตัวแปรสาหรับเก็บผลลัพธ์ของการรันภาษา sql
ที่เก็บอยูใ่ นตัวแปร sql_var
: ตัวแปรสาหรับเก็บภาษา sql
45
ตัวอย่าง
การติดต่ อฐานข้ อมูล
$MySql="SELECT * FROM person_detail ";
$MyResult=mysql_query($MySql);
$MySql="SELECT p_id,p_name,p_lastname,p_address,p_telephone";
$MySql=$MySql." FROM person_detail";
$MySql=$MySql." ORDER BY p_id";
$MyResult=mysql_query($MySql);
46
การติดต่ อฐานข้ อมูล
คาสัง่ สาหรับการแสดงค่าที่ดึงได้จาก SQL
while($MyRow=mysql_fetch_assoc($MyResult))
{
echo $MyRow['id'].'<br>';
}
$MyRow
$MyResult
id
: ตัวแปรสาหรับเก็บค่า 1 record
: ตัวแปรสาหรับเก็บผลลัพธ์ที่ได้จากการรันภาษา sql
: ชื่อฟิ ลด์ท่ีตอ้ งการให้แสดง
47
ปิ ดการติดต่ อฐานข้ อมูล
คาสัง่ สาหรับปิ ดการติดต่อ
mysql_free_result(sql_var_name);
mysql_close(conn_var_name);
ตย.
mysql_free_result($MyResult);
mysql_close($MyConn);
48
การติดต่ อฐานข้ อมูล : แสดงข้ อมูล
1.
2.
3.
4.
ติดต่อ MySql
ติดต่อฐานข้อมูล
เขียนภาษา Sql คาสัง่ Select
จัดรู ปแบบการแสดงข้อมูล
49
การติดต่ อฐานข้ อมูล : แสดงข้ อมูล
ตย SelectDB_02.php
<?php
@$MyConn=mysql_connect('localhost','root','');
if(!$MyConn)
{
echo "false to connect to database";
exit;
}
$MyDb=mysql_select_db("person_db");
if(!$MyDb)
{
echo "cann't find the database";
exit;
}
$MySql="SELECT p_id,p_name,p_lastname,p_address,p_telephone,p_picture";
$MySql=$MySql." FROM person_detail";
$MySql=$MySql." ORDER BY p_id";
$MyResult=mysql_query($MySql);
if(!$MyResult)
{
echo "sql error : ".$MySql;
exit;
}
$MyRowNum=mysql_num_rows($MyResult);
echo '<br>';
$j=1;
echo "รายชื่อ<br>";
while($MyRow=mysql_fetch_assoc($MyResult))
{
echo "<img src=".$MyRow["p_picture"]."> ";
echo $j.". ";
echo $MyRow["p_id"]." ";
echo $MyRow["p_name"]." ";
echo $MyRow["p_lastname"]." ";
echo $MyRow["p_address"]." ";
echo $MyRow["p_telephone"]." ";
echo " <br>";
$j++;
}
mysql_free_result($MyResult);
mysql_close($MyConn);
?>
50
การติดต่ อฐานข้ อมูล : แสดงข้ อมูล
ตย SelectDB_03.php
<?php
mypassword);
@$MyConn=mysql_connect('localhost','root','');
if(!$MyConn)
{
echo "false to connect to database";
exit;
}
$MyDb=mysql_select_db("person_db");
if(!$MyDb)
{
echo "cann't find the database";
exit;
}
$MySql="SELECT p_id,p_name,p_lastname,p_address,p_telephone,p_picture";
$MySql=$MySql." FROM person_detail";
$MySql=$MySql." ORDER BY p_id";
$MyResult=mysql_query($MySql);
if(!$MyResult)
{
echo "sql error : ".$MySql;
exit;
}
$MyRowNum=mysql_num_rows($MyResult);
echo '<br>';
$j=1;
echo "<font size=5><center>รายชื่อ</center></font><br>";
echo "<table cellspacing=0 width=500 align=center>";
echo "<tr border=0>";
echo "<td>";
echo "</td>";
echo "<td border=0 align=center>ลาดับ</td>";
echo "<td>รหัส</td>";
echo "<td>ชื่อ</td>";
echo "<td>นามสกุล</td>";
echo "<td>ที่อยู<่ /td>";
echo "<td>โทรศัพท์</td>";
echo "</tr>";
while($MyRow=mysql_fetch_assoc($MyResult))
{
If($j%2==1)
{echo "<tr bgcolor=#99CCCC>";}
else {echo "<tr bgcolor=#FFFFFF>";}
echo "<td>";
echo "<img src=";
echo $MyRow["p_picture"];
echo " width=50>";
echo "</td>";
echo "<td align=center>";
echo $j.".";
echo "</td>";
echo "<td>";
echo $MyRow["p_id"];
echo "</td>";
echo "<td>";
echo $MyRow["p_name"];
echo "</td>";
echo "<td>";
echo $MyRow["p_lastname"];
echo "</td>";
echo "<td>";
echo $MyRow["p_address"];
echo "</td>";
echo "<td>";
echo $MyRow["p_telephone"];
echo "</td>";
echo "</tr>";
$j++;
}
echo "</table>";
mysql_free_result($MyResult);
mysql_close($MyConn);
?>
51
Input Type เพิม่ เติม
Input Type เพิ่มเติมสาหรับการใช้ฟอร์มเพื่อส่ งค่าข้อมูล
- Input type ชนิด image แสดงด้วยรู ปภาพ แต่ให้ผลการทางานเหมือน
Input type ชนิด submit
<INPUT TYPE=image NAME=input_name SRC=path_pig_file
ALT=alternative>
image : บอกชนิดของ input type เป็ นแบบรู ปภาพ
input_name : ชื่อของ input type
path_pig_file : พาร์ทและชื่อไฟล์รูปภาพที่ตอ้ งการให้แสดง
alternative : ข้อความแสดงคาอธิบายของรู ปภาพ ข้อความจะ
ปรากฎเมื่อนาเม้าไปชี้ที่รูปภาพ
52
Input Type เพิม่ เติม
- Input type ชนิด hidden จะไม่แสดงอะไรทั้งสิ้ นบนหน้าจอ
ใช้สาหรับส่ งข้อมูลที่ไม่ตอ้ งการให้ผใู ้ ช้เห็น
<INPUT TYPE=hidden NAME=input_name VALUE=input_value>
hidden : บอกชนิดของ input type เป็ นซ่อน
input_name : ชื่อของ input type
input_value : ค่าที่ตอ้ งการส่ ง ซึ่งอาจระบุเป็ นข้อความใน source
code หรื อ ระบุเป็ นชื่อตัวแปรที่ตอ้ งการส่ งค่าไปก็ได้
53
Input Type เพิม่ เติม
ตัวอย่าง
<INPUT TYPE=image NAME=mypicture
SRC=/MyWebSite/image/b_drop.gif ALT=ลบ>
<INPUT TYPE= hidden NAME =p_id VALUE=$MyRow["p_id"]>
54
การเพิม่ ข้ อมูลผ่ านฟอร์ ม
1. เขียนฟอร์มรับข้อมูลผ่านหน้าจอ
2. ส่ งข้อมูลไปเพิ่มลงฐานข้อมูล โดย
• ติดต่อ MySql
• ติดต่อฐานข้อมูล
• เขียนภาษา Sql คาสัง่ Insert
55
การแก้ ไขข้ อมูลผ่ านฟอร์ ม
1. แสดงข้อมูล -> เลือกข้อมูลที่ตอ้ งการแก้ไข
2. เขียนฟอร์มแสดงข้อมูลเดิมและรับข้อมูลที่มีการแก้ไข
ผ่านหน้าจอ
3. ส่ งข้อมูลไปแก้ไขฐานข้อมูล โดย
• ติดต่อ MySql
• ติดต่อฐานข้อมูล
• เขียนภาษา Sql คาสัง่ Update
56
การลบข้ อมูลผ่ านฟอร์ ม
1. แสดงข้อมูล -> เลือกข้อมูลที่ตอ้ งการลบ
2. เขียนฟอร์มแสดงข้อมูลเพื่อยืนยันการลบ
3. ทาการลบข้อมูลจากฐานข้อมูล โดย
• ติดต่อ MySql
• ติดต่อฐานข้อมูล
• เขียนภาษา Sql คาสัง่ Delete
57
แบบฝึ กหัด
1.จงเขียนโปรแกรมเพื่อทางานกับตาราง ‘title’ สาหรับทางานดังต่อไปนี้
- แสดงข้อมูลในตาราง (Select)
- เพิ่มข้อมูลในตาราง (Insert)
- แก้ไขข้อมูลในตาราง (Update)
- ลบข้อมูลในตาราง (Delete)
2.จงทาการเพิ่มข้อมูลอาชีพ ลงฐานข้อมูล person_db และ ให้ผใู ้ ช้สามารถ
เลือกอาชีพของตนเองลงที่อยูใ่ นฐานข้อมูลได้โดยไม่ตอ้ งพิมพ์
(มีการเรี ยกใช้ 2 ตาราง คือ person_detail และ career)
58
แบบฝึ กหัด
ฐานข้อมูล person_db ประกอบด้วยตาราง 4 ตาราง ดังนี้
Person_detail Title Career User
ตาราง person_detail
สารับเก็บข้อมูลสมาชิก
คียห์ ลัก (primary key) : p_id
ประกอบด้วย 7 ฟิ ลด์
1.
2.
3.
4.
5.
6.
7.
ฟิ ลด์
p_id
t_id
p_name
p_lastname
p_address
p_telephone
p_picture
ความหมาย
รหัสสมาชิก
รหัสคานาหน้าชื่อ
ชื่อสมาชิก
นามสกุลสมาชิก
ที่อยูส่ มาชิก
หมายเลขโทรศัพท์สมาชิก
รู ปภาพสมาชิก
59
แบบฝึ กหัด
ตาราง title
สารับเก็บคานาหน้าชื่อที่เป็ นไปได้ท้ งั หมด
primary key : t_id
ประกอบด้วย 2 ฟิ ลด์
1.
2.
ฟิ ลด์
t_id
t_name
ความหมาย
รหัสคานาหน้าชื่อ
คานาหน้าชื่อ
60
แบบฝึ กหัด
ตาราง career
สารับเก็บอาชีพที่เป็ นไปได้ท้ งั หมด
primary key : c_id
ประกอบด้วย 2 ฟิ ลด์
1.
2.
ฟิ ลด์
c_id
c_name
ความหมาย
รหัสอาชีพ
อาชีพ
61
แบบฝึ กหัด
ตาราง user
สารับเก็บชื่อและรหัสผ่านของผูใ้ ช้ระบบ ซึ่ งเป็ นผูท้ ี่ได้รับสิ ทธิ์
ให้ทาการเปลี่ยนแปลงข้อมูล
primary key : u_id
ประกอบด้วย 3 ฟิ ลด์
1.
2.
3.
ฟิ ลด์
u_id
u_name
u_password
ความหมาย
รหัสผูใ้ ช้
ชื่อผูใ้ ช้ หรื อ username
รหัสผ่าน หรื อ password
62
แบบฝึ กหัด
แสดงความสัมพันธ์ระหว่างตาราง
p_id
t_id
p_name
p_lastname
p_address
p_telephone
p_picture
t_id
t_name
u_id
u_name
u_password
c_id
c_name
63
แบบฝึ กหัด
แสดงความสัมพันธ์ระหว่างตาราง แก้ไข
p_id
t_id
c_id
p_name
p_lastname
p_address
p_telephone
p_picture
t_id
t_name
u_id
u_name
u_password
c_id
c_name
64
แบบฝึ กหัด
แสดงความสัมพันธ์ระหว่างตาราง
person_detail
p_id t_id c_id p_name p_lastname
1 2 3 A
Apple
2 3 2 B
Boy
3 2 1 C
Cat
title
t_id
1
2
3
t_name
Mr.
Miss
Mrs.
career
c_id
1
2
3
p_address
12 Ubon
43 Bangkok
80 Chonbury
p_telephone p_picture
MyWebSite/pic1.jpg
0948573
MyWebSite/pic2.jpg
0239577
MyWebSite/pic3.jpg
0056886
user
c_name
Police
Student
Other
u_id
1
2
u_name c_password
aaa
543
bbb
098
65
คาสั่ งสาหรับการเรียกหน้ าเว็บเพจ
HEADER("LOCATION: path_and_filename");
path_and_filename : พาร์ท และ ชื่อไฟล์ที่ตอ้ งการเรี ยกให้แสดง
ถ้าไฟล์ที่ตอ้ งการแสดงอยูพ่ าร์ทเดียวกับไฟล์ที่เรี ยก ระบุเฉพาะชื่อไฟล์กไ็ ด้
66
คาสั่ งสาหรับการเรียกหน้ าเว็บเพจ
ตย.
ตาแหน่งของพาร์ทและไฟล์
ไฟล์ที่พิมพ์คาสัง่ เรี ยกเว็บเพจ
ไฟล์ที่ตอ้ งการให้แสดง
/MyWebSite/Member/Detail.php
/MyWebSite/Member/Index.php
Detail.php
…
HEADER("LOCATION: index.php");
…
67
คาสั่ งสาหรับการเรียกหน้ าเว็บเพจ
ตย.
ตาแหน่งของพาทและไฟล์
ไฟล์ที่พิมพ์คาสัง่ เรี ยกเว็บเพจ
ไฟล์ที่ตอ้ งการให้แสดง
/MyWebSite/Member/Detail.php
/MyWebSite/General/Index.php
Detail.php
…
HEADER("LOCATION: /MyWebSite/General/Index.php ");
…
68
Login and Session
การตรวจสอบ username และ password สาหรับเข้าถึงหน้าเว็บเพจบางส่ วน
ที่กนั ไว้ให้เฉพาะเจ้าหน้าที่เข้าใช้ได้เท่านั้น
ถ้า username และ password ไม่ถูกต้อง
ให้กลับมากรอก username และ password ใหม่
ถ้า username และ password ถูกต้อง ให้เข้าใช้เว็บเพจเฉพาะเจ้าหน้าที่ได้
ถ้าเข้าเรี ยกใช้เว็บเพจเฉพาะเจ้าหน้าที่โดยตรงด้วยการพิมพ์ชื่อไฟล์ที่ address bar
ให้กระโดดไปที่หน้า login อัตโนมัติ เพื่อกรอก username และ password
69
Login and Session
START
Enter username
and password
username,password
correct?
no
Enter username and
password again
yes
Show staff first page
Show all staff pages
Logout
STOP
70
Login and Session
army
START
Enter username
and password
username,password
correct?
no
Enter username and
password again
yes
Show staff first page
Show all staff pages
Logout
STOP
71
Login and Session
START
Login Enter username
and password
CheckLogin
username,password
correct?
no
LoginAgain
Enter username and
password again
yes
Show staff first page Select database
Insert , Delete
Show all staff pages
Update database
Logout
STOP
Logout
72
Login and Session
army
START
Login Enter username
and password
CheckLogin
username,password
correct?
no
LoginAgain
Enter username and
password again
yes
Show staff first page Select database
Insert , Delete
Show all staff pages
Update database
Logout
STOP
Logout
73
session_start();
เริ่ มการทางานของ session
ทุกเพจที่ตอ้ งการใช้งาน session ต้องมีคาสัง่ นี้
session_unset("var_name");
กาหนดและเคลียร์ค่าตัวแปร session
var_name ชื่อตัวแปร session
$_SESSION['var_name']=value;
การกาหนดค่าให้ตวั แปร session
var_name
ชื่อตัวแปร session
value
ค่าตัวแปร
74
ตย MyWebSite/ExDB3/Login.php
//สร้าง form สาหรับพิมพ์ username และ password
75
ตย MyWebSite/ExDB3/LoginCheck.php
….
//$username ที่ผใู ้ ช้พิมพ์เข้ามา
//$password ที่ผใู ้ ช้พิมพ์เข้ามา
//$_SESSION['username'] is session variable
//ถ้าตรวจสอบ $username $password กับ database ถูกต้อง
if($MyRowNum>0)
{
session_start() //เริ่ มใช้งาน session
$_SESSION['username']=$username;
header("Location: Select.php");
}
…
76
ตย MyWebSite/ExDB3/LoginAgain.php
//แสดงข้อความ username and password ไม่ถูกต้อง
//รับค่า username and password
77
ตย MyWebSite/ExDB3/Select.php และ หน้าเว็บเพจ Insert,Update,Delete
//Select.php
<?php
session_start(); //เรี ยกฟังก์ชนั่ session_start() เพื่อเริ่ มใช้งาน session
if($_SESSION['username']=='')
{
//ไม่ผา่ นหน้า login ให้กลับไปที่หน้า login
header("Location: Login.php");
}
else
{
// เข้าใช้งานได้…
}
78
ตย MyWebSite/ExDB3/Login.php
//ถ้ามีการ login แล้วไม่สามารถ login ซ้ าได้อีก
session_start();
if (isset($_SESSION['username'])) //login already
{
echo "You login already go to ";
echo "<A HREF=select.php>select page</A>";
echo " or ";
echo "<A HREF=logout.php>logout</A>";
}
//ถ้ายังไม่ได้ login ให้ทาการ login
else //not login
{
//สร้าง form สาหรับพิมพ์ username และ password
79
ตย MyWebSite/ExDB3/Logout.php
//เคลียร์ตวั แปร session
session_unset('username');
80