thực hành cơ sở dữ liệu với php filethực hành php căn bản can tho university...

30
Thc hành PHP MySql Thc hành cơ sở dli u vi PHP Bài tập 3.1: Xây dựng trang hiển thị danh sách các loại sản phẩm Giao di n Hình 3.1: Giao diện hiển thị danh sách các loại sản phẩm X<?php include 'database.php'; $query = "select lsp_id, lsp_ten, lsp_mota from loaisanpham "; $result = mysql_query($query); function dsLoaiSap() { global $result; $stt=1; while (list($id, $ten, $mota) = mysql_fetch_array($result)) { echo "<tr> <td>$stt</td> <td>" . $ten . "</td> <td>" . $mota . "</td> </tr>"; $stt++; } }

Upload: others

Post on 01-Sep-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP MySql

Thực hành cơ sở dữ liệu với PHP

Bài tập 3.1: Xây dựng trang hiển thị danh sách các loại sản phẩm

Giao diện

Hình 3.1: Giao diện hiển thị danh sách các loại sản phẩm

Xử lý

<?php

include 'database.php';

$query = "select lsp_id, lsp_ten, lsp_mota from loaisanpham ";

$result = mysql_query($query);

function dsLoaiSap()

{

global $result;

$stt=1;

while (list($id, $ten, $mota) = mysql_fetch_array($result)) {

echo "<tr>

<td>$stt</td>

<td>" . $ten . "</td>

<td>" . $mota . "</td>

</tr>";

$stt++;

}

}

Page 2: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 2

?>

<link href="style.css" rel="stylesheet" type="text/css" />

<title>Danh sách sản phẩm</title>

<table width="100%" border="0" cellpadding="5" cellspacing="0"

class="TableContainer">

<tr>

<td class="Header">Quản lý loại sản phẩm

</td>

</tr>

<tr>

<td>

<form id="form1" name="form1" method="post" action="">

<table width="100%" border="0" cellspacing="0"

cellpadding="5" class="TableData">

<tr>

<td colspan="3" class="themmoi"><a

href="loaisanpham.php">Thêm mới</a> </td>

</tr>

<tr>

<th>Số thứ tự</th>

<th>Loại sản phẩm </th>

<th>Mô tả</th>

</tr>

<?php

dsLoaiSap();

?>

</table>

</form>

</td>

</tr>

</table>

Đây chỉ đơn giản là mô tả lại cho chức năng lấy dữ liệu và hiển thị hàng

loạt. Chúng ta sẽ xây dựng trang hoàn chỉnh ở phần tiếp theo, sau khi đa

học đủ kiến thức.

Page 3: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 3

Bài tập 3.2: Xây dựng trang thêm loại sản phẩm. Chức năng này được gọi từ liên kết

thêm mới trên giao diện trang danh sách các loại sản phẩm

Hình 3.2: Giao diện thêm loại sản phẩm

Sử dụng giao diện đã tạo ở phần 01. Ở đây bảng loại sản phẩm có cột id là

tự tăng nên không cần thêm vào câu lệnh insert

Mã nguồn PHP tham khảo

<?php

if(isset($_POST["txtTen"]))

{

$conn= mysql_connect("localhost","root","") or die(" khong the ket noi");

mysql_select_db("salomon");

// kiểm tra nếu chưa có tên sản phẩm mới thêm mới

$ten = $_POST["txtTen"];

$sql = "SELECT lsp_id,lsp_ten,lsp_mota FROM loaisanpham WHERE

lsp_ten='$ten'";

$result = mysql_query($sql);

if(mysql_num_rows($result) > 0)

{

echo "<script>alert('Loại sản phẩm đã tồn tại !');</script>";

}

else

{

$mota = $_POST["txtMoTa"];

$sql = "INSERT INTO loaisanpham(lsp_ten, lsp_mota)

VALUES('$ten','$mota')";

mysql_query($sql);

echo "<script>alert('Loại sản phẩm đã được thêm !');</script>";

Page 4: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 4

}

}

?>

Trong ví dụ này chúng ta sử dụng kết hợp PHP và html trên 01 trang để

thực hiện thêm loại sản phẩm, có xét đến khả năng thêm được hay không

của thông tin mới.

Phần kiểm tra dữ liệu đầu vào như là: Kiểm tra rỗng, kiểm tra độ dài chuỗi

chúng ta đã thực hiện trong phần 01 chương trình lập trình web chuyên

nghiệp nên ở đây bỏ qua phần nay.

Bài tập 3.3: Xây dựng trang thêm

Nhà cung cấp

Hình thức thanh toán.

Khách hàng

Cách thức thực hiện tương tự như trang thêm loại sản phẩm bên trên.

Bài tập 3.4: Cập nhật loại sản phẩm

Hình 3.3: Cập nhật loại sản phẩm

Mã nguồn tham khảo

<?php

if(isset($_POST["txtid"]))

{

$id = $_POST["txtid"];

$ten = $_POST["txtTen"];

Page 5: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 5

$mota = $_POST["txtMoTa"];

$conn= mysql_connect("localhost","root","") or die(" khong the ket noi");

mysql_select_db("salomon");

$sql = "UPDATE loaisanpham SET lsp_ten='$ten', lsp_mota = '$mota' WHERE

lsp_id='$id'";

mysql_query($sql);

}

?>

Bài tập 3.5: Xây dựng trang

Cập nhật nhà cung cấp

Hình thức thanh toán.

Khách hàng

Cách thức thực hiện tương tự như trang thêm loại sản phẩm bên trên.

Bài tập 3.6: Hoàn chỉnh trang danh sách loại sản phẩm với giao diện như sau:

Hình 3.4: Danh sách lại sản phẩm đầy đủ chức năng

Trong bài thực hành này chúng ta bổ sung liên kết

Thêm mới: mở trang thêm loại sản phẩm mới (Bài tập trước)

Nút nhấn Xóa mục chọn: Xóa các phần tử được chọn trên danh sách

Page 6: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 6

Nút xóa có biểu tượng hình tròn đỏ trên mỗi dòng: cho phép xóa phần tử

của dòng được chọn.

Nút nhấn có biểu tượng bút: Chuyển id của loại sản phẩm trên cùng hàng

sang trang cập nhật(Bài tập tiếp theo).

Mã nguồn tham khảo

<?php

include_once '../database.php';

include_once '../lib.php';

if(isset($_GET["id"]))

{

$id = $_GET["id"];

$sql = "DELETE FROM loaisanpham WHERE lsp_id='$id'";

$result = mysql_query($sql);

}

if (isset($_POST['btnXoa'])) {

for ($i = 0; $i < count($_POST['checkbox']); $i++)

{

$sql = "DELETE FROM loaisanpham WHERE

lsp_id='".$_POST['checkbox'][$i]."'";

$result = mysql_query($sql);

}

}

$query = "select lsp_id, lsp_ten, lsp_mota from loaisanpham ";

$result = mysql_query($query);

function dsLoaiSap()

{

global $image_edit_path;

global $image_delete_path;

global $result;

$stt=1;

while (list($id, $ten, $mota) = mysql_fetch_array($result)) {

echo "<tr>

<td class=\"cotCheckBox\"><input name=\"checkbox[]\"

type=\"checkbox\" id=\"checkbox[]\" value=" . $id . "></td>

<td>$stt</td>

<td>" . $ten . "</td>

<td>" . $mota . "</td>

<td class=\"cotNutChucNang\"><a href=\"loaisanpham_capnhat.php?id=" .

$id . "\"><img src='../" . $image_edit_path . "'/></a></td>

Page 7: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 7

<td class=\"cotNutChucNang\"><a onclick='return confirm(\"Loại sản phẩm

bạn chọ sẽ bị xóa?\");' href=\"loaisanpham_danhsach.php?id=" . $id . "\"><img

src='../" . $image_delete_path . "'/></a></td>

</tr>";

$stt++;

}

}

?>

<link href="../style.css" rel="stylesheet" type="text/css" />

<title>Danh sách sản phẩm</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<table width="100%" border="0" cellpadding="5" cellspacing="0"

class="TableContainer">

<tr>

<td class="Header">Quản lý loại sản phẩm

</td>

</tr>

<tr>

<td>

<form id="form1" name="form1" method="post" action="">

<table width="100%" border="0" cellspacing="0" cellpadding="5"

class="TableData">

<tr>

<td colspan="6" class="themmoi"><a

href="loaisanpham.php">Thêm mới</a> </td>

</tr>

<tr>

<th>Chọn</th>

<th>Số thứ tự</th>

<th>Loại sản phẩm </th>

<th>Mô tả</th>

<th>Sủa</th>

<th>Xóa</th>

</tr>

<?php

dsLoaiSap();

?>

<tr>

<td colspan="6"><input type="submit" value="Xóa mục chọn"

name="btnXoa" id="btnXoa" onclick='return confirm("Loại sản phẩm bạn chọ sẽ bị

xóa?");' class="InputButton"/> </td>

Page 8: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 8

</tr>

</table>

</form>

</td>

</tr>

</table>

Bài tập 3.7: Hiệu chỉnh nội dung trang cập nhật thảo mãn các điều kiện sau

Trường chứa lsp_id là chỉ đọc (readonly) và giá trị nhận từ trang danh sách

đưa qua thông qua tham số URL.

Dựa vào lsp_id nhận được đọc thông tin về loại sản phẩm này và gán lên

giao diện trang web.

Khi nhấn nut Cập nhật thông tin được lưu lại và chuyển về trang danh sách

Giao diện vẫn như bài tập trước nhưng nội dung xử lý được hiệu chỉnh lại.

Hình 3.5: Chọn loại sản phẩm cập nhật

Chọn dòng có số thứ tự 4 giao diện trang cập nhật nhìn thấy như sau

Page 9: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 9

Hình 3.6: Giao diện cập nhật

Hiệu chỉnh nội dung mô tả thành “Máy tính bảng thương hiệu Trung Quốc”. Nhấn

Cập nhật

Hình 3.7: Kết quả cập nhật

Mã nguồn tham khảo trang cập nhật

…………………………………………………

<?php

include_once '../lib.php';

include_once '../database.php';

if(isset($_GET["do"]))

{

if($_GET["do"] == "edit")

{

$id = $_POST["txtid"];

Page 10: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 10

$ten = $_POST["txtTen"];

$mota = $_POST["txtMoTa"];

$sql = "UPDATE loaisanpham SET lsp_ten='$ten', lsp_mota = '$mota'

WHERE lsp_id=$id";

mysql_query($sql);

header("Location: loaisanpham_danhsach.php");

}

}

else

{

if(isset($_GET["id"]))

{

$id = $_GET["id"];

$sql = "SELECT lsp_id,lsp_ten,lsp_mota FROM loaisanpham WHERE

lsp_id=$id";

$result = mysql_query($sql);

$sanpham = mysql_fetch_assoc($result);

$ten = $sanpham["lsp_ten"];

$mota = $sanpham["lsp_mota"];

}

}

?>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<body>

<table width="100%" border="0" cellpadding="5" cellspacing="0"

class="TableContainer">

<tr>

<td class="Header">TẠO LOẠI SẢN PHẨM</td>

</tr>

<tr>

<td><form id="form1" name="form1" method="post"

action="loaisanpham_capnhat.php?do=edit">

<table width="100%" border="0" cellpadding="5" cellspacing="0"

class="TableForm">

<tr>

<td colspan="2" class="TieuDe">Nhập thông tin loại sản phẩm</td>

</tr>

<tr>

<td width="40%" class="Left">Mã loại sản phẩm: </td>

Page 11: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 11

<td><input name="txtid" type="text" id="txtid" value="<?php echo

$id;?>" maxlength="50" readonly="readonly"/>

<span class="BatBuoc">*</span></td>

</tr>

<tr>

<td width="40%" class="Left">Tên loại sản phẩm: </td>

<td><input name="txtTen" type="text" id="txtTen" maxlength="50"

value="<?php echo $ten;?>" />

<span class="BatBuoc">*</span></td>

</tr>

<tr>

<td width="40%" class="Left">Mô tả:</td>

<td align="left"><textarea name="txtMoTa"id="txtMoTa" rows="5"

cols="20"> <?php echo $mota;?></textarea>

<span class="BatBuoc">*</span></td>

</tr>

<tr>

<td align="center">&nbsp;</td>

<td align="left"><input name="btnThem" type="submit"

class="Button" id="btnThem" value="Cập nhật" />

<span class="BatBuoc">*</span> là bắt buộc nhập</td>

</tr>

</table>

</form></td>

</tr>

</table>

</body>

</html>

Page 12: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 12

Bài tập 3.8: Xây dựng trang hiển thị chi tiêt sản phẩm, cập nhật và thêm mới sản

phẩm

Hiển thị hình sản phẩm .

Thông tin mô tả sản phẩm.

Thông tin về giá bán sản phẩm.

Trạng thái của sản phầm còn bán được hay đã hết hàng.

Hình 3.8: Danh sách sản phẩm thanh bên trái

Trong ví dụ này chúng ta xây dựng danh sách sản phẩm với thông tin được tập hợp từ

một số bảng. Khi Người dùng nhấn vào hính sản phẩm hệ thống chuyển sang trang

xem thông tin chi tiết về sản phẩm.

Mã nguồn tham khảo

<?php

include_once '../database.php';

include_once '../lib.php';

function SanPhamTrangChu(){

global $image_edit_path;

global $image_delete_path;

global $image_imageedit_path;

global $image_noimage_path;

global $image_path;

Page 13: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 13

$query = "select a.sp_id, sp_ten, hsp_ten, lsp_ten , nsx_ten, sp_gia,

sp_mota_ngan, DATE_FORMAT(sp_ngaydang, '%d-%m-%Y') , sp_soluong from sanpham a

LEFT JOIN loaisanpham b ON a.lsp_id = b.lsp_id

LEFT JOIN nhasanxuat c on a.nsx_id = c.nsx_id

LEFT JOIN sanpham_hinh d on a.sp_id = d.sp_id

GROUP BY a.sp_id";

$result = mysql_query($query);

if (mysql_num_rows($result) > 0) {

while (list($id, $ten, $hinh, $loai, $hang, $gia, $motangan, $ngaydang, $soluong)

= mysql_fetch_array($result))

{

echo "<div class=\"SanPham\"><a href=\"sanpham_chitiet.php?id=".$id."\"><img

width='130' height='97'

src=\"../".(isset($hinh)?($image_path."small_".$hinh):$image_noimage_path)."\"><b

r/>

<div style='min-height: 28px; float:left; width: 100%; '> <span

class=\"TenSanPham\">".$ten."</span></div></a><br/>

<div style='float:left; width: 100%;'>Giá: <span

class=\"Gia\">".number_format($gia, 0, ',', '.')."</span> VND</div><br/>

<div style='float:left; width: 100%;'>Còn: <span

class=\"Gia\">".number_format($soluong, 0, ',', '.')."</span> sản phẩm</div>

</div>";

}

} else {

echo "<tr><td class='khongdulieu' colspan='11'>Chưa có dữ liệu</td></tr>";

}

}

?>

<body>

<table width="100%" border="0" cellpadding="0" cellspacing="7"

class="TableSanPham">

<tr>

<td>

<?php SanPhamTrangChu(); ?>

</td>

</tr>

</table>

</body>

</html>

Khi chọn sản phẩm hệ thống chuyển sang trang xem chi tiết như sau:

Page 14: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 14

Hình 3.9: Giao diện xem chi tiết sản phẩm

Mã nguồn tham khảo

<?php

include_once 'database.php';

include_once 'lib.php';

$ten = "";

$tencu = "";

$gia = 0;

$gia_cu_ = 0;

$loai = "";

$nsx = "";

$motangan = "";

$ngaydang_ = "";

$motachitiet = "";

$soluong = 0;

$id = 0;

$loi = "";

Page 15: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 15

// xác định sản phẩm đang hiệu chỉnh

if(isset($_GET["id"]))

{

$query = "select sp_id, sp_ten, lsp_ten, nsx_ten, sp_gia, sp_gia_cu,

sp_mota_ngan, sp_mota_chitiet, sp_ngaydang, sp_soluong from sanpham, nhasanxuat,

loaisanpham where sanpham.nsx_id=nhasanxuat.nsx_id and

sanpham.lsp_id=loaisanpham.lsp_id and sp_id=" . $_GET["id"];

$sanpham = mysql_query($query);

if(!$sanpham)

{

echo "<script>alert('Không tìm thấy thông tin chi tiết sản phẩm !');

history.go(-1);</script>";

}

else

while (list($id_, $ten_, $loai_, $nsx_, $gia_, $gia_cu_, $motangan_,

$motachitiet_, $ngaydang_, $soluong_ ) = mysql_fetch_array($sanpham)) {

$id = $id_;

$ten = $ten_;

$tencu = $ten_;

$loai = $loai_;

$nsx = $nsx_;

$gia = $gia_;

$motangan = $motangan_;

$motachitiet = $motachitiet_;

$soluong = $soluong_;

}

}

function dshinhsanpham()

{

if(isset($_GET["id"]))

{

$query = "SELECT hsp_ten FROM sanpham_hinh where sanpham_hinh.sp_id=" .

$_GET["id"];

$dshinh = mysql_query($query);

$dshinh2 = mysql_query($query);

if(mysql_num_rows($dshinh))

{

$i =1;

echo " <div id='bigPic'>";

Page 16: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 16

while(list($hinh_sp) = mysql_fetch_array($dshinh))

{

echo " <a href='hinhsanpham/$hinh_sp'><img

src='hinhsanpham/$hinh_sp' alt=''/></a>";

}

echo " </div>

<ul id='thumbs'>" ;

while(list($hinh_sp) = mysql_fetch_array($dshinh2))

{

if($i==1)

echo " <li class='active' rel='$i'><img

src='hinhsanpham/$hinh_sp' alt='' /></li>";

else

echo " <li rel='$i'><img src='hinhsanpham/$hinh_sp'

alt='' /></li>";

$i++;

}

echo " </ul>";

}

}

}

?>

<table width="100%" border="0" cellpadding="5" cellspacing="0"

class="TableContainer">

<tr>

<td class="Header">THÔNG TIN CHI TIẾT SẢN PHẨM

</td>

</tr>

<tr>

<td>

<table width="100%" border="0" cellpadding="10" cellspacing="0"

class="TableContainer">

<tr>

<td width="23%" align="center">

<div id='wrapper'>

<div id='body'>

<?php dshinhsanpham(); ?>

</div>

<div class='clearfix'></div>

<div id='push'></div>

Page 17: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 17

</div>

<script type="text/javascript" src="scripts/slideshow/script.js">

</script>

<script type="text/javascript">

$(function() {

$('#bigPic a').lightBox(); // Select all links in

object with gallery ID

});

</script>

</td>

<td width="77%" valign="top">

<p class="TenSanPhamLon" >

<?php echo $ten;?></p>

<p><strong>Giá</strong>: <span class="Gia"><?php echo

number_format($gia,0);?></span> VNĐ</p>

<p><strong>Giá cũ</strong>: <span class="GiaCu"><?php echo

number_format($gia_cu_,0);?></span> VNĐ</p>

<p><strong>Ngày cập nhật</strong>: <?php if($ngaydang_!="")echo

date("d-m-Y",$ngaydang_);?></p>

<p><strong>Số lượng</strong>: <?php echo

number_format($soluong,0);?></p>

<p><img src="images/datmua.gif" width="61" height="21"> </p></td>

</tr>

<tr>

<td colspan="2">

<div class="TenSanPham">Tính năng</div>

<?php echo $motachitiet;?>

</td>

</tr>

</table>

</td>

</tr>

</table>

Bài tập 3.9: Xây dựng chức năng chọn sản phẩm từ danh sách để cập nhật, xóa hay

mở trang thêm mới sản phẩm.

Page 18: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 18

Hình 3.10: Giao diện danh sách sản phẩm

Mã nguồn tham khảo trang danh sách sản phẩm

<?php

include_once '../database.php';

include_once '../lib.php';

function getSanPhams() {

global $image_edit_path;

global $image_delete_path;

global $image_imageedit_path;

global $image_noimage_path;

global $image_path;

$query = "select a.sp_id, sp_ten, hsp_ten, lsp_ten , nsx_ten, sp_gia,

sp_mota_ngan, DATE_FORMAT(sp_ngaydang, '%d-%m-%Y') , sp_soluong from sanpham a

LEFT JOIN loaisanpham b ON a.lsp_id = b.lsp_id

LEFT JOIN nhasanxuat c on a.nsx_id = c.nsx_id

LEFT JOIN sanpham_hinh d on a.sp_id = d.sp_id

GROUP BY a.sp_id";

$result = mysql_query($query);

Page 19: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 19

if (mysql_num_rows($result) > 0) {

while (list($id, $ten, $hinh, $loai, $hang, $gia, $motangan, $ngaydang,

$soluong) = mysql_fetch_array($result)) {

echo "<tr>

<td class=\"cotCheckBox\"><input name=\"checkbox[]\"

type=\"checkbox\" id=\"checkbox[]\" value=" . $id . "></td>

<td>" . (isset($hinh) ? "<img src='../" . $image_path . $hinh . "'

width='50px'/>" : "<img src='../" . $image_noimage_path . "' width='50px'/>") .

"</td>

<td class='cotTen'>" . $ten . "</td>

<td class='cotText'>" . $loai . "</td>

<td class='cotText'>" . $hang . "</td>

<td class='cotSo'>" . $gia . "</td>

<td class='cotNgay'>" . $ngaydang . "</td>

<td class='cotSo'>" . $soluong . "</td>

<td class=\"cotNutChucNang\"><a

href=\"sanpham_capnhat.php?do=edit&id=" . $id . "\"><img src='../" .

$image_edit_path . "'/></a></td>

<td class=\"cotNutChucNang\"><a href=\"sanpham_capnhat_anh.php?id=" .

$id . "\"><img src='../" . $image_imageedit_path . "'/></a>

<td class=\"cotNutChucNang\"><a onclick='return confirmDelete()'

href=\"sanpham_danhsach.php?id=" . $id . "\"><img src='../" . $image_delete_path

. "'/></a></td>

</td></tr>";

}

} else {

echo "<tr><td class='khongdulieu' colspan='11'>Chưa có dữ

liệu</td></tr>";

}

}

?>

<link href="../style.css" rel="stylesheet" type="text/css">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Danh sách sản phẩm</title>

<table width="100%" border="0" cellspacing="0" cellpadding="5" class="TableData">

<tr>

<td colspan="11" class="themmoi"><a

href="sanpham_capnhat.php?do=add"><img src="../images/add.png"/> Thêm mới</a>

</td>

</tr>

Page 20: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 20

<tr>

<th>Chọn </th>

<th colspan="2">Sản phẩm </th>

<th>Loại </th>

<th>Hãng SX </th>

<th>Giá </th>

<th>Ngày đăng </th>

<th>Số lượng </th>

<th>Sửa </th>

<th>Hình ảnh </th>

<th>Xóa</th>

</tr>

<?php

getSanPhams();

?>

<tr>

<td colspan="11" class="phantrang">Phân trang</td>

</tr>

<tr>

<td colspan="11"><input type="submit" value="Xóa mục

chọn" name="btnXoa" id="btnXoa" onclick='return confirmDelete()'

class="InputButton"/> </td>

</tr>

</table>

Khi người dùng chọn sản phẩm từ danh sách này:

Gọi trang cập nhật

Hiển thị chi tiết thông tin sản phẩm

Cho phép hiệu chỉnh và lưu lại thay đổi.

Page 21: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 21

Hình 3.11: Giao diện cập nhật

Giao diện này được xây dựng để thực hiện 02 chức năng

Xem chi tiết trước khi cập nhật, lưu lại thông tin cập nhật.

Thêm mới sản phẩm.

Từ trang danh sách người dùng chọn sản phẩm để cập nhật, chúng ta sử dụng tham số

URL để truyền giá trị id của sản phẩm sang trang cập nhật

(sanpham_capnhat.php?do=edit&id=10 hoặc thêm mới

sanpham_capnhat.php?do=add).

Như vậy tại trang cập nhật chúng ta phải thực hiện một số việc sau:

Kiểm tra giá trị tham số id và do. Nếu id tồn tại

Thực hiện câu lệnh tìm thông tin chi tiết cho sản phẩm có id bằng id nhận

tự tham số URL bên trên.

Truy vấn dữ liệu bảng loại sản phẩm và tạo hộp chọn loại sản phẩm

Truy vấn dữ liệu bảng nhà sản xuất và tạo hộp chọn nhà sản xuất

Page 22: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 22

Điền thông tin lên giao diện.

Nếu do tồn tại và có giá trị

edit: chạy câu lệnh cập nhật

add: chạy câu lệnh thêm mới

Trong quá trình thêm mới hoặc cập nhật cần kiểm tra sản phẩm đã tồn tại

chưa.

Kiểm tra trang nếu được gọi do người dùng nhấn nút câp nhật hay trang mới

được gọi lên từ trang danh sách.

Kiểm tra tính hợp lệ của dữ liệu trước khi cập nhật

Tên của sản phẩm không được tồn tại trước đó

Số lượng phải lớn hơn 0

Phải xác định nhà cung cấp

Loại sản phẩm cũng được phải được chọn

Mô tả và mô tả chi tiết sản phẩm cũng phải được chọn

Tất cả các thông tin phải hợp lệ mới tiến hành cập nhật thông tin.

Mã nguồn tham khảo việc thực hiện sửa hoặc thêm mới sản phẩm

<?php

include_once '../database.php';

include_once '../lib.php';

$ten = "";

$tencu = "";

$gia = "";

$loai = 0;

$nsx = 0;

$gia = "";

$motangan = "";

$motachitiet = "";

$soluong = "";

$id = 0;

$loi = "";

// Kiểm tra hợp lệ

function KiemTraCapNhatSanPham($tencu) {

Page 23: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 23

$loi = "";

$ten = $_POST["txtTen"];

if ($_GET['do'] == "add") {

$query = "select * from sanpham where sp_ten ='" . trim($ten) . "'";

$result = mysql_query($query);

if (mysql_num_rows($result) > 0) {

$loi .= "<li>Sản phẩm đã tồn tại</li>";

}

} else {

$query = "select * from nhasanxuat where nsx_ten ='" . trim($ten) . "'

and nsx_ten <> '" . $tencu . "'";

$result = mysql_query($query);

if (mysql_num_rows($result) > 0) {

$loi .= "<li>Sản phẩm đã tồn tại</li>";

}

}

if (trim($_POST["txtTen"]) == "") {

$loi .= "<li>Vui lòng nhập tên sản phẩm</li>";

}

if ($_POST["slLoaiSanPham"] == "0") {

$loi .= "<li>Vui lòng chọn loại sản phẩm</li>";

}

if ($_POST["slNhaSanXuat"] == "0") {

$loi .= "<li>Vui lòng chọn nhà sản xuất</li>";

}

if (trim($_POST["txtGia"]) == null) {

$loi .= "<li>Vui lòng nhập giá</li>";

}

else if(is_int(str_replace(".","", trim($_POST["txtGia"]))))

{

$loi .= "<li>Vui lòng nhập giá hợp lệ</li>";

}

if (trim($_POST["txtMoTaNgan"]) == "") {

$loi .= "<li>Vui lòng nhập mô tả ngắn sản phẩm</li>";

}

if (trim($_POST["txtMoTaChiTiet"]) == "") {

$loi .= "<li>Vui lòng nhập mô tả chi tiết sản phẩm</li>";

}

Page 24: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 24

if (trim($_POST["txtSoLuong"]) == "") {

$loi .= "<li>Vui lòng nhập số lượng</li>";

}

else if(is_int(str_replace(".","", trim($_POST["txtSoLuong"]))))

{

$loi .= "<li>Vui lòng nhập số lượng hợp lệ</li>";

}

if($loi != ""){

return "<tr><td colspan='2'><ul class='cssLoi'>".$loi."</ul></td></tr>";

}

else {

return "";

}

}

// hàm thêm sản phẩm mới

function ThemSanPham($ten, $loai, $nsx, $gia, $motangan, $motachitiet, $soluong)

{

$query = "select * from sanpham where sp_ten ='" . trim($ten) . "'";

$result = mysql_query($query);

if (mysql_num_rows($result) > 0) {

echo "Sản phẩm đã tồn tại";

} else {

$queryInsert = "insert into sanpham(sp_ten, lsp_id, nsx_id, sp_gia,

sp_mota_ngan, sp_mota_chitiet, sp_ngaydang, sp_soluong)

values('" . trim($ten) . "', " . $loai . ", " . $nsx . ",

" . $gia . ", '" . $motangan . "', '" . $motachitiet . "', now(), " . $soluong .

")";

mysql_query($queryInsert);

echo "<script>window.location='sanpham_danhsach.php';</script>";

}

}

// hàm cập nhật sản phẩm

function CapNhatSanPham($id, $ten, $loai, $nsx, $gia, $motangan, $motachitiet,

$soluong) {

$query = "update sanpham set sp_ten ='" . $ten . "',

lsp_id = " . $loai . ", nsx_id = " . $nsx . ", sp_gia=" . $gia . ",

sp_mota_ngan='" . $motangan . "', sp_mota_chitiet = '" .

$motachitiet . "', sp_soluong=" . $soluong . "

where sp_id = " . $id;

mysql_query($query) or die(mysqli_error());

Page 25: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 25

echo "<script>window.location='sanpham_danhsach.php';</script>";

}

// lấy thông cho các dropdown loại sản phẩm

function DanhSachLoaiSamPham($selectedValue){

$query = "select lsp_id, lsp_ten from loaisanpham";

$result = mysql_query($query);

echo "<select name='slLoaiSanPham'>

<option value='0'>Chọn Loại sản phẩm</option>";

while (list($id, $ten) = mysql_fetch_array($result)) {

if($id==$selectedValue){

echo "<option value='".$id."' selected>".$ten."</option>";

}

else

{

echo "<option value='".$id."'>".$ten."</option>";

}

}

echo "</select>";

}

//xây dựng hộp chọn nhà sản xuất

function DanhSachNhaSanXuat($selectedValue){

$query = "select nsx_id, nsx_ten from nhasanxuat";

$result = mysql_query($query);

echo "<select name='slNhaSanXuat'>

<option value='0'>Chọn nhà sản xuất</option>";

while (list($id, $ten) = mysql_fetch_array($result)) {

if($id==$selectedValue){

echo "<option value='".$id."' selected>".$ten."</option>";

}

else

{

echo "<option value='".$id."'>".$ten."</option>";

}

}

echo "</select>";

}

// xác định sản phẩm đang hiệu chỉnh

if(isset($_GET["id"]))

Page 26: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 26

{

$query = "select sp_id, sp_ten, lsp_id, nsx_id, sp_gia, sp_gia_cu, sp_mota_ngan,

sp_mota_chitiet, sp_ngaydang, sp_soluong from sanpham where sp_id=" .

$_GET["id"];

$sanpham = mysql_query($query);

while (list($id_, $ten_, $loai_, $nsx_, $gia_, $gia_cu_, $motangan_,

$motachitiet_, $ngaydang_, $soluong_ ) = mysql_fetch_array($sanpham)) {

$id = $id_;

$ten = $ten_;

$tencu = $ten_;

$loai = $loai_;

$nsx = $nsx_;

$gia = $gia_;

$motangan = $motangan_;

$motachitiet = $motachitiet_;

$soluong = $soluong_;

}

}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$ten = $_POST["txtTen"];

$gia = $_POST["txtGia"];

$loai = $_POST["slLoaiSanPham"];

$motachitiet = $_POST["txtMoTaChiTiet"];

$motangan = $_POST["txtMoTaNgan"];

$nsx = $_POST["slNhaSanXuat"];

$soluong = $_POST["txtSoLuong"];

$loi = KiemTraCapNhatSanPham($tencu);

if($loi == ""){

if ($_GET['do'] == "add") {

ThemSanPham($ten, $loai, $nsx, $gia, $motangan, $motachitiet, $soluong);

} elseif ($_GET['do'] == "edit") {

if (isset($_GET['id'])) {

$id = $_GET['id'];

CapNhatSanPham($id, $ten, $loai, $nsx, $gia, $motangan, $motachitiet,

$soluong);

}

}

}

}

?>

Page 27: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 27

<script type="text/javascript" src="../scripts/ckeditor/ckeditor.js"></script>

<link href="../style.css" rel="stylesheet" type="text/css">

<title>Cập nhật sản phẩm</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<table width="100%" border="0" cellpadding="5" cellspacing="0"

class="TableContainer">

<tr>

<td class="Header">CẬP NHẬT SẢN PHẨM

</td>

</tr>

<tr>

<td>

<form id="form1" name="form1" method="post" action="">

<table width="100%" border="0" cellpadding="5" cellspacing="0"

class="TableForm">

<tr>

<td colspan="2" class="TieuDe">Nhập thông tin sản phẩm</td>

</tr>

<?php echo $loi; ?>

<tr>

<td width="40%" class="Left" >Tên sản phẩm: </td>

<td>

<input name="txtTen" class="longInput" type="text"

id="txtTen" maxlength="100" value="<?php echo $ten ?>"></input>

<span class="BatBuoc">*</span>

</td>

</tr>

<tr>

<td width="40%" class="Left">Loại sản phẩm: </td>

<td>

<?php DanhSachLoaiSamPham($loai); ?>

<span class="BatBuoc">*</span>

</td>

</tr>

<tr>

<td width="40%" class="Left">Hãng sản xuất: </td>

<td>

<?php DanhSachNhaSanXuat($nsx); ?>

<span class="BatBuoc">*</span>

Page 28: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 28

</td>

</tr>

<tr>

<td width="40%" class="Left">Giá: </td>

<td>

<input name="txtGia" class="shortInput" type="text"

id="txtGia" maxlength="100" value="<?php echo $gia ?>"></input>

<span class="BatBuoc">*</span>

</td>

</tr>

<tr>

<td width="40%" class="Left">Mô tả ngắn: </td>

<td>

<textarea name="txtMoTaNgan" rows="4"

class="longInput"><?php echo $motangan; ?></textarea>

<span class="BatBuoc">*</span>

</td>

</tr>

<tr>

<td width="40%" class="Left">Mô tả chi tiết: </td>

<td>

<textarea name="txtMoTaChiTiet" rows="4"

class="ckeditor"><?php echo $motachitiet; ?></textarea>

<script language="javascript">

CKEDITOR.replace( 'txtMoTaChiTiet',

{

skin : 'kama',

extraPlugins : 'uicolor',

uiColor: '#eeeeee',

toolbar : [ ['Source','DocProps','-

','Save','NewPage','Preview','-','Templates'],

['Cut','Copy','Paste','PasteText','PasteWord','-','Print','SpellCheck'],

['Undo','Redo','-','Find','Replace','-

','SelectAll','RemoveFormat'],

['Form','Checkbox','Radio','TextField','Textarea','Select','Button','ImageButton'

,'HiddenField'],

['Bold','Italic','Underline','StrikeThrough','-','Subscript','Superscript'],

['OrderedList','UnorderedList','-

','Outdent','Indent','Blockquote'],

Page 29: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 29

['JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'],

['Link','Unlink','Anchor',

'NumberedList','BulletedList','-','Outdent','Indent'],

['Image','Flash','Table','Rule','Smiley','SpecialChar'],

['Style','FontFormat','FontName','FontSize'],

['TextColor','BGColor'],, [ 'UIColor' ] ]

});

</script>

<span class="BatBuoc">*</span>

</td>

</tr>

<tr>

<td width="40%" class="Left">Số lượng: </td>

<td>

<input name="txtSoLuong" class="shortInput"

type="text" id="txtSoLuong" maxlength="100" value="<?php echo $soluong ?>"/>

<span class="BatBuoc">*</span>

</td>

</tr>

<tr>

<td colspan="2"> <span class="BatBuoc">*</span> là bắt

buộc nhập</td>

</tr>

<tr>

<td colspan="2" align="center">

<input name="btnCapNhat" type="submit" class="Button"

id="btnCapNhat" value="Cập nhật" />

<input name="btnBoQua" type="button" class="Button"

id="btnBoQua" value="Bỏ qua" onclick="window.location='?func=ql_sanpham'" />

</td>

</tr>

</table>

</form>

</td>

</tr>

</table>

Như vậy chúng ta vừa xây dựng xong chức năng cập nhật và thêm sản phẩm mới kết

hợp trên cùng 01 giao diện.

Page 30: Thực hành cơ sở dữ liệu với PHP fileThực hành PHP căn bản Can Tho University software center 4 Trong ví dụ này chúng ta sử dụng kết hợp PHP và html

Thực hành

PHP căn bản

Can Tho University software center 30

Bài tập 3.10: Thực hiện hoàn chỉnh chức năng quản lý khách hàng.

Danh sách có các liên kết chức năng: Thêm, Sủa, Xóa.

Xây dựng trang Thêm và cập nhật chung.

Xóa và danh sách trên cùng một trang.