Slide SIF206 Web5 Phpmysql
Slide SIF206 Web5 Phpmysql
Perancangan dan
Pemrograman Web
PHP – Accessing MySQL
Database
MYSQL
SQL
SQL (Structured Query Language) adalah bahasa yang
khusus digunakan untuk mengoperasikan database.
Untuk memudahkan, SQL query dapat dikelompokkan
menjadi tiga jenis :
Query untuk mengelola data
Query untuk mengakses data dalam 1 tabel
Query untuk mengakses data lebih dari 1 tabel
SQL Manager : Software yang digunakan untuk
mengolah database dalam server
PHPMyAdmin
SQLyog
EMS
Query u/ Mengelola Database
• Yang termasuk dalam kelompok query ini
adalah :
▫ Membuat database
▫ Menghapus database
▫ Membuat tabel
▫ Memodifikasi tabel
▫ Menghapus tabel
▫ Menambah user (user database)
▫ Mengatur permission (user database)
▫ Menghapus user (user database)
Query u/ Mengelola Database (cont.)
Membuat database
CREATE DATABASE <nama database>
Menghapus database
DROP DATABASE
Membuat tabel
CREATE TABLE userTable(
UserId INT (3),
UserName VARCHAR (50),
Password VARCHAR (50),
NamaLengkap VARCHAR (50)
);
Menghapus tabel
DROP TABLE <nama tabel>;
Query u/ 1 Tabel
Query satu tabel digunakan untuk mengelola
data dalam satu tabel
Beberapa perintah yang dapat digunakan :
Fungsi Query
Input data INSERT
Modifikasi data UPDATE
Mengambil data SELECT
Menghapus data DELETE
Menghitung banyaknya data COUNT
Menjumlah data SUM
Menghitung rata-rata AVG
dll
Query u/ 1 Tabel (cont.)
SQL INSERT
INSERT INTO userTable VALUES (
1,
'upeje',
'upj123',
‘Sistem Informasi UPJ'
);
SQL SELECT
SELECT *
FROM UserTable
WHERE UserId=1;
SQL UPDATE
UPDATE userTable
SET password=’test’
WHERE UserName=’upeje’;
SQL DELETE
DELETE FROM UserTable
WHERE UserName=‘upeje’
12
Membuat
Latihan database
CREATE DATABASE <nama database>
• Buat table: Biodata Menghapus
UserId INT (3),
database
NamaLengkap VARCHAR (50) DROP DATABASE
Menghapus tabel
==== DROP TABLE <nama tabel>;
SELECT * FROM
UserTable JOIN Biodata
ON UserTabel.UserId = Biodata.UserId
14
Koneksi PHP
15
$query =
"INSERT INTO userTable VALUES (
1,
‘username',
‘password',
‘Username testing'
)”;
Eksekusi Perintah (SQL)
Setelah menyusun SQL dalam String,
dilakukan eksekusi perintah SQL :
$hasil = mysql_query($query);
if($hasil){
echo(mysql_affected_rows()."
orang ditambahkan ke dalam
sistem");
}
Mengakses Hasil Query
Mengetahui jumlah data hasil query :
$jumlahHasil = mysql_num_rows($hasil);
Mengambil data hasil query :
$data = mysql_fetch_array($hasil);
Perintah tsb akan mengambil data (1 baris data)
dan akan mengembalikan false jika baris telah
habis, maka untuk mengambil seluruh data
digunakan looping :
while($row = mysql_fetch_array($result)){
//perintah yang dilakukan
$datas[] = $row;
}
Mengambil data dalam bentuk array :
$passDb = $data[“Password”];
Output
• Nilai kembalian dari mysql _fetch_array
adalah berupa array (1 dimensi / multi
dimensi)
• Dapat digunakan kombinasi antara
looping dan array untuk membentuk
tampilan output HTML dari data.
Output (cont.)
Contoh :
<table border="1">
<tr>
<th>Nama</th>
<th>NIM</th>
<th>Jenis Kelamin</th>
</tr>
<?php foreach($mahasiswa as $item) : ?>
<tr <?php echo ($item['jenis_kelamin']=='perempuan') ?
'style="color: red;"' : "" ?>>
<td><?php echo $item['nama'] ?></td>
<td><?php echo $item['nim'] ?></td>
<td><?php echo $item['jenis_kelamin'] ?></td>
</tr>
<?php endforeach ?>
</table>
Issues
• Perhatikan kompleksitas query
▫ Semakin kompleks query yang digunakan,
semakin lama waktu eksekusi
• Perhatikan koneksi open-close
▫ Non-presistent connection mencegah beban
berlebihan di server
▫ Beban di server berbanding lurus dengan
jumlah user yang mengakses
• Perhatikan sekuritas
▫ Hindari kemungkinan sql-injection
▫ Escape characters
25
$sambung =
mysql_connect("localhost","root",“password"); //isi
dengan password anda
if($sambung){
echo "Koneksi Berhasil";}
else {
echo "Koneksi Gagal";}
$q_db = mysql_query($buat_db);
if($q_db){
echo "<br> Database $nama_db berhasil dibuat";}
else {
echo "<br> Database $nama_db gagal dibuat";}
26
$sambung = mysql_connect("localhost","root",“password");
if($sambung){
echo "Koneksi Berhasil";}
else {
echo "Koneksi Gagal";}
mysql_select_db($nama_db,$sambung) or die("Koneksi ke
$nama_db gagal");
$qtbl = mysql_query($buat_tbl,$sambung);
if($qtbl){
echo "<br>Tabel$nama_tbl berhasil dibuat";}
else {
echo "<br>Tabel $nama_tbl gagal dibuat";}
?>
27
FORM input
• Membuat Form sebagai input pada sistem
database.
• Input disimpan dalam satu tabel tertentu.
• Pada attribut action ditentukan file yang
memiliki skrip PHP untuk menyimpan
input ke tabel pada database.
28
FORM-Input Database
<html>
<head>
<title>Formulir Input Biodata</title>
<meta author=UPJ>
</head>
<body>
<h1>Masukkan Data Biodata</h1>
<form method=post action=simpan.php>
<table>
<tr>
<td>Kode</td>
<td><input type=text name=kode size=20></td>
</tr>
<tr>
<td>Negara</td>
<td><input type=text name=nama size=30></td>
</tr>
29
<html>
</head>
<body>
<h1>Biodata</h1>
<?php
$kode = $_POST['kode'];
$nama = $_POST['nama'];
$alamat = $_POST['alamat'];
?>
32
if($hasil){
echo "Data tersimpan: <br>";
echo "Kode : ".$kode."<br>";
echo "Nama : ".$nama."<br>";
echo "Alamat : ".$alamat."<br>";
}else{
echo "Data gagal disimpan";}
?>
<form method=post action=form-input.html>
<input type=submit value=Kembali>
</form>
<form method=post action=table.php>
<input type=submit value="Lihat Data">
</form>
</body>
</html>
33
table
<?php
$sambung = mysql_connect("localhost","root",“password");
mysql_select_db('upj',$sambung) or die("Koneksi ke upj gagal");
$tampil = "select * from biodata";
$q_buat = mysql_query($tampil,$sambung);
?>
<h1>Tabel Biodata</h1>
<table border=1>
<tr>
<td>Kode</td>
<td>Nama</td>
<td>Alamat</td>
</tr>
<?php
while($row = mysql_fetch_row($q_buat)){
echo ("<tr align=center><td>$row[0]</td>");
echo ("<td>$row[1]</td>");
echo ("<td>$row[2]</td></tr>");
}
?>
</table>
<html>
<form method=post action=form-input.html><input type=submit
value=Tambah name=tambah></form>
</html>
Menampilkan data bentuk 35
table
36