class php 2 - .: ftsm · a123459 shakira fssk pelajar. 3 tp2543 nomatriknomatrik nama namanama...
TRANSCRIPT
1
TP2543 WEB PROGRAMMING
PHP & Database / September 2010
GOALGOAL
� Learn about Database
�Basic concepts - RDBMS
�MS Access
� SQL
� Learn about PHP-MySQL programming
DATABASE
� Database – an integrated collection of data
� DBMS – mechanism to store and organize data
according to database format
� Relational databases – popular
�Uses SQL to perform queries, manipulate data
�MS Access, MySQL, MS SQL, Oracle, Sybase, DB2
2
DATABASE MODELS
RDBMS
� Relational database model – logical
presentation of data that allows focusing on
relations among data items, rather than
physical structure
� Composed of tables
�Rows and Columns
� Primary key – unique ID
EXAMPLE: DB TP2543
TP2543TP2543TP2543TP2543
NoMatrikNoMatrikNoMatrikNoMatrik NamaNamaNamaNama JabatanJabatanJabatanJabatan
A123456 Lauren TP
A123457 Colbie TR
A123458 Mary Jo Lisa EDU
A123459 Shakira FSSK
PELAJAR
3
TP2543TP2543TP2543TP2543
NoMatrikNoMatrikNoMatrikNoMatrik NamaNamaNamaNama JabatanJabatanJabatanJabatan KumpulanKumpulanKumpulanKumpulan
A123456 Lauren TP 1
A123457 Colbie TR 2
A123458 Mary Jo Lisa EDU 2
A123459 Shakira FSSK 3
PELAJAR
TP2543TP2543TP2543TP2543
NoMatrikNoMatrikNoMatrikNoMatrik NamaNamaNamaNama JabatanJabatanJabatanJabatan
A123456 Lauren TP
A123457 Colbie TR
A123458 Mary Jo Lisa EDU
A123459 Shakira FSSK
PELAJAR
NoMatrikNoMatrikNoMatrikNoMatrik Asgn1Asgn1Asgn1Asgn1 Asgn2Asgn2Asgn2Asgn2
A123456 10 4
A123457 2 9
A123458 6 5
A123459 8 7
MARKAH INDIVIDU
TP2543TP2543TP2543TP2543NoMatrikNoMatrikNoMatrikNoMatrik NamaNamaNamaNama JabatanJabatanJabatanJabatan KumpKumpKumpKump
A123456 Lauren TP 1
A123457 Colbie TR 1
A123458 Mary Jo Lisa EDU 2
A123459 Shakira FSSK 3
PELAJAR
KumpKumpKumpKump ProposalProposalProposalProposal ProjekProjekProjekProjek
1 77 89
2 34 91
3 62 56
4 55 75
MARKAH KUMPULANNoMatrikNoMatrikNoMatrikNoMatrik Asgn1Asgn1Asgn1Asgn1 Asgn2Asgn2Asgn2Asgn2
A123456 10 4
A123457 2 9
A123458 6 5
A123459 8 7
MARKAH INDIVIDU
4
MS ACCESS DEMO
SQL
� SQL – Structured Query Language
� SQL can be used to access and manipulate
databases
SELECT * FROM pelajar
SELECT * FROM pelajar
WHERE NoMatrik=‘A123456’
SQL QUERIES
� Query database for specific information and
have a recordset returned from table
SELECT SELECT SELECT SELECT namanamanamanama FROM FROM FROM FROM pelajarpelajarpelajarpelajar
namanamanamanama
Jalil
Gopal
Ah Meng
5
SQL KEYWORDS
� SELECT – select from tables
� FROM – specifies tables
� WHERE – specifies criteria
� INSERT – inserts data into table
� UPDATE – updates data in table
� DELETE – deletes data in table
� CREATE – create new table
� DROP – delete existing table
SQL KEYWORDS USAGE
SELECT * FROM SELECT * FROM SELECT * FROM SELECT * FROM pelajarpelajarpelajarpelajar
Output: select all columns from table pelajar
SELECT SELECT SELECT SELECT namanamanamanama, , , , nomatriknomatriknomatriknomatrik FROM FROM FROM FROM pelajarpelajarpelajarpelajar
Output: select columns nama and nomatrik from table pelajar
SELECT SELECT SELECT SELECT namanamanamanama, , , , nomatriknomatriknomatriknomatrik FROM FROM FROM FROM pelajarpelajarpelajarpelajar
WHERE WHERE WHERE WHERE nomatriknomatriknomatriknomatrik=‘A12345’=‘A12345’=‘A12345’=‘A12345’
Output: select columns nama, nomatrik from table pelajarwhere row nomatrik equals ‘A12345’
SQL KEYWORDS USAGE
INSERT INTO INSERT INTO INSERT INTO INSERT INTO pelajarpelajarpelajarpelajar ((((nomatriknomatriknomatriknomatrik, , , , namanamanamanama, , , , jabatanjabatanjabatanjabatan, , , , kumpulankumpulankumpulankumpulan))))
VALUES (‘A12365’, ‘VALUES (‘A12365’, ‘VALUES (‘A12365’, ‘VALUES (‘A12365’, ‘HashimHashimHashimHashim’, ‘4’, ‘9’) ’, ‘4’, ‘9’) ’, ‘4’, ‘9’) ’, ‘4’, ‘9’)
Action: insert specified value to table pelajar, creating new row
DELETE FROM DELETE FROM DELETE FROM DELETE FROM pelajarpelajarpelajarpelajar
WHERE WHERE WHERE WHERE nomatriknomatriknomatriknomatrik=‘A12369’=‘A12369’=‘A12369’=‘A12369’
Action: select row from table pelajar where nomatrikas specified and delete the row
6
SQL KEYWORDS USAGE
UPDATE UPDATE UPDATE UPDATE pelajarpelajarpelajarpelajar
SET SET SET SET namanamanamanama = ‘= ‘= ‘= ‘HishamHishamHishamHisham’’’’
WHERE WHERE WHERE WHERE namanamanamanama = ‘= ‘= ‘= ‘HashimHashimHashimHashim’ AND ’ AND ’ AND ’ AND nomatriknomatriknomatriknomatrik = = = =
‘A12365’‘A12365’‘A12365’‘A12365’
Action: update specified row to table pelajar
idididid namenamenamename sexsexsexsex countrycountrycountrycountry
1 fabregas M Spain
2 kournikova F Russia
3 zidane M France
4 totti M Italy
5 clijster F Belgium
6 messi M Paraguay
7 sharapova F Russia
athletes
MYSQL
� MySQL - "My Structured Query Language“
�Created by Michael Widenius from TcX (Sweden) in
1994
�Open-source, relational database management
system
�MySQL is used in web applications and acts as the
database component of the WAMP/LAMP
�Used in free software projects (e.g. WordPress,
Joomla)
7
MYSQL AND WAMP/LAMP
� Download at www.mysql.com
MYSQL INTERFACES
� Many different interfaces to manage and
browse database easily
� phpMyAdmin
� heidiSQL
�MySQL-Front
� SQLyog
PHPMYADMIN
8
CREATING DATABASE
CREATE DATABASE databasename
CREATING TABLES
� Some of MySQL data types:
TypeTypeTypeType DescriptionDescriptionDescriptionDescription
CHAR [length] Fixed-length, 0 to 255 characters
long
VARCHAR
[length]
Variable-length, 0 to 255 characters
long
TEXT String, maximum 65,535 characters
INT [length] -2.147 millions to 2,147 millions
DATE YYYY-MM-DD format
TIME HH:MM:SS
CREATING TABLES
1. Choose a suitable name and create table
2. Identify columns names
3. Identify data types
4. Identify suitable MySQL data type
5. Identify suitable length
9
CREATING TABLES
� Creating table for a guestbook application
CREATING TABLES
� Identifying column general data type
Column nameColumn nameColumn nameColumn name TypeTypeTypeType
ID Number
NAMA Text
EMAIL Text
TARIKH Date/time
KOMEN Text
TABLE: GUESTBOOK
Column Column Column Column
namenamenamename
TypeTypeTypeType MySQLMySQLMySQLMySQL data typedata typedata typedata type
ID Number INT
NAMA Text VARCHAR [40]
EMAIL Text VARCHAR [40]
TARIKH Date/time DATETIME
KOMEN Text TEXT
10
GUESTBOOK
IDIDIDID NAMANAMANAMANAMA EMAILEMAILEMAILEMAIL TARIKHTARIKHTARIKHTARIKH KOMENKOMENKOMENKOMEN
1 Simon simon@yahoo.
com
2010-09-
21
07:40:48
Excellent website!
Well done!
2 Azizi azizi@hotmail.
com
2010-09-
23
10:20:48
Sila lawati laman
web saya:
azizi.com.my
3 Wei
Yoong
uk
2010-09-
23
10:45:12
Still waiting for the
updates :D
SORT DATASORT DATASORT DATASORT DATA
DELETE DATADELETE DATADELETE DATADELETE DATA
CREATE CREATE CREATE CREATE
CONNECTIONCONNECTIONCONNECTIONCONNECTION
CLOSE CLOSE CLOSE CLOSE
CONNECTIONCONNECTIONCONNECTIONCONNECTION
INSERT DATAINSERT DATAINSERT DATAINSERT DATA
SELECT DATASELECT DATASELECT DATASELECT DATA
UPDATE DATAUPDATE DATAUPDATE DATAUPDATE DATA
11
PHP CREATING & CLOSING CONNECTION
� Use mysql_connect() and mysql_close()
$con = mysql_connectmysql_connectmysql_connectmysql_connect (servername, username,
password);
if (!$con) {
die('Could not connect: ' . mysql_error());
}
…
mysql_closemysql_closemysql_closemysql_close($con);
PHP SELECTING DATABASE
� Use mysql_select_db()
…
$con = mysql_connect (servername, username,
password);
mysql_select_dbmysql_select_dbmysql_select_dbmysql_select_db (databasename, $con);
…
PHP DISPLAYING DATA
� Use mysql_query() to run SQL
� The return result are usually in array form
$result = mysql_querymysql_querymysql_querymysql_query ("SELECT * FROM guestbook");
while($row = mysql_fetch_array ($result)) {
echo $row[‘NAMA'] . " " . $row[‘EMAIL'] . ” ” .
row[‘TARIKH'] . " " . $row[‘KOMEN'];
}
12
PHP INSERTING DATA
…
//run query
mysql_querymysql_querymysql_querymysql_query("INSERT INTO guestbook (ID,
NAMA, EMAIL, TARIKH, KOMEN) VALUES (5,
‘Jason', ‘[email protected]‘, NOW(), ‘Website
yang bagus!’)");…
� Use mysql_query()
PHP INSERTING DATA
//Create query
$qry = "INSERT INTO guestbook (ID, NAMA, EMAIL,
TARIKH, KOMEN)
VALUES (5, ‘Jason', ‘[email protected]‘, NOW(),
‘Website yang bagus!’)”;
//Run query
mysql_query($qry);
…
PHP INSERTING DATA FROM FORM
HTML
FORM PHP
13
PHP INSERTING DATA FROM FORM
PHP INSERTING DATA FROM FORM
…
…
$sql="INSERT INTO guestbook (NAMA,
EMAIL, TARIKH, KOMEN)
VALUES ('$_POST[nama]',
'$_POST[email]‘, '$_POST[tarikh]‘,
'$_POST[komen]')";
…
PHP DISPLAYING DATA IN TABLE
…
echo "<table>";
while($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row[‘NAMA'] . "</td>";
echo "<td>" . $row[‘EMAIL'] . "</td>";
echo "<td>" . $row[‘TARIKH'] . "</td>";
echo "<td>" . $row[‘KOMEN'] . "</td>";
echo "</tr>";
}
echo "</table>";
…
14
PHP UPDATING DATA
� Use UPDATE /SET /WHERE to update data
mysql_query (“UPDATE guestbook SET EMAIL =
‘[email protected]’ WHERE NAMA =
‘Simon‘ ");
}
PHP DELETING DATA
� Use DELETE FROM /WHERE to delete data
from database
…
mysql_query (“DELETE FROM guestbook WHERE
Nama = ‘Simon‘ ");
…
UPDATE/DELETE IN FORM
� Modify display table form to incorporate
update/delete functions
//make a link at the end of each table row for UPDATE and DELETE
…
echo “<td>”;
echo "<a href='delete.php?cmd=delete&id=$id‘>Delete</a>";
echo “</td><td>”;
echo "<a href=‘update.php?&id=$id‘>Delete</a>";
echo "<br>";
if($_GET["cmd"]=="delete") {
…
}