Liệt Kê Danh Sách Sản Phẩm Duyệt Hay Chưa

Hình 3 6 Liệt kê danh sách loại sách Để liệt kê danh sách nhóm trong bảng 1

Hình 3.6. Liệt kê danh sách loại sách

Để liệt kê danh sách nhóm trong bảng tblCategories, bằng cách khai báo phương thức nhận chuỗi SQL dạng Select và giá trị mặc định trả về nhiều phần tử thẻ option trong tập tin database.php như ví dụ sau:

function optionselected($stSQL,$item,$links) {

$results = mysql_query($stSQL, $links);

$totalRows=mysql_num_rows($results);

$strOption="<option value="" selected>";

$strOption .="--Select--</option>"; if($totalRows>0) {

while ($row = mysql_fetch_array ($results)) {

$strOption .="<option value="" ;

Có thể bạn quan tâm!

Xem toàn bộ 270 trang tài liệu này.

$strOption .=$row["ID"]."""; if($row["ID"]==$item)

$strOption .=" selected ";

$strOption .= ">".$row["Name"];

$strOption .="</option>";

}

}

return $strOption;

}

Sau đó, gọi phương thức này trong trang lietketheonhom.php như ví dụ 10-3.

<?php

require("dbcon.php"); require("database.php");

$id="";

if (isset($cateid))

$id=$cateid;

$stSQL ="select CateID As ID, CateName as Name from tblCategories ";

$result = mysql_query($stSQL, $link);

$totalRows=mysql_num_rows($result);

$strOption=optionselected($stSQL,$id,$link);

?>

<form name=frmMain method=post>

<tr>

<td align=left colspan=4>

Category: <select name=cateid onchange="document.frmMain.submit();">

<?=$strOption?>

</select></td>

<td align=right>&nbsp;</td>

</tr>

</form>

Lần đầu tiên có thể chọn mặc định một nhóm hoặc liệt kê tất cả, khi người sử dụng chọn nhóm sản phẩm nào đó thì trang lietketheonhom.php sẽ liệt kê danh sách loại sách của nhóm sách đó.

Để làm điều này ta khai báo thẻ form với thẻ select như ví dụ sau:

<form name=frmMain method=post>

<tr> <td align=left colspan=4>

Category: <select name=cateid onchange="document.frmMain.submit();">

<?=$strOption?>

</select></td>

<td align=right>&nbsp;</td> </tr>

</form>

Khi người sử dụng chọn các bản ghi và nhấn nút Delete, dựa vào giá trị của nút có tên action (trong trường hợp này là Delete), có thể khai báo biến để lấy giá trị chọn bằng cách khai báo như sau:

$strid=$chon

$strid=str_replace(",","','",$strid);

Dựa vào thẻ hidden khai báo trong các trang trình bày danh sách (chẳng ạn lietketheonhom.php) bản ghi như sau:

<input name="from" type=hidden value="subcategories">

Có thể biết từ trang nào gọi đến trang dodelete.php để quay trở về khi thực hiện xong tác vụ xử lý.

Ngoài ra, dựa vào giá trị của nút action để thực hiện phát biểu SQL. Chẳng hạn, trong trường hợp này nếu người sử dụng nhấn hút Delete thì khai báo như ví dụ sau:

switch($strfrom)

{

case "subcategories":

$stSQL ="delete from tblsubcategories where SubCateID in('".$strid."')";

$strlocation="Location:lietketheonhom.php"; break;

case "categories":

$stSQL ="delete from tblcategories where CateID in('".$strid."')";

$strlocation="Location:nhom.php"; break;

}

Sau đó, có thể thực thi phát biểu SQL vừa khai báo ở trên như sau:

if($stSQL!="") {

$result = mysql_query($stSQL, $link);

}

Lưu ý rằng, cũng nên khai báo try catch trong khi làm việc với cơ sở dữ liệu. Ngoài ra, cũng phải xác nhận trước khi thực thi hành động xoá bản ghi chọn bằng cách khai báo đoạn Javascript như sau:

<script> function isok() {

return confirm('Are you sure to delete?');

}

</script>

Sau đó gọi trong biến cố onsubmit của form như sau:

<form action=dosql.php method=post onsubmit="return calculatechon();">

Tương tự như trường hợp Delete, khi duyệt một số bản ghi theo một cột dữ liệu nào đó, chẳng hạn, trong trường hợp này cho phép sử dụng những sản phẩm đã qua sự đồng ý của nhà quản lý thì cột dữ liệu Activate của bảng tbltems có giá trị là 1. Để làm điều này, trước tiên ta liệt kê danh sách sản phẩm như hình.

Hình 3 7 Liệt kê danh sách sản phẩm duyệt hay chưa Tương tự như trong trường 2

Hình 3.7. Liệt kê danh sách sản phẩm duyệt hay chưa

Tương tự như trong trường hợp delete, khai báo trang doUpdate như sau:

<HTML>

<HEAD> <TITLE>::Welcome to PHP and mySQL</TITLE> </HEAD>

<BODY>

<h3>Cap nhat mau tin</h3>

<?php require("dbcon.php");

$strid=$chon;

$strid=str_replace(",","','",$strid);

$strfrom=""; if(isset($from_)) {

$strfrom=$HTTP_POST_VARS{"from_"};

}

$strtype=""; if(isset($type)) {

$strtype=$HTTP_POST_VARS{"type"}; }

$stSQL=""; if($strfrom<>"") { switch($strfrom) { case "items":

$stSQL ="update tblItems set Activate=1 where ItemID in('".$strid."')";

break;

}

if($stSQL!="") {

$result = mysql_query($stSQL, $link); if($result)

$affectrow=mysql_affected_rows(); mysql_close($link);

}

}

?>

So mau tin cap nhat <?= $affectrow?>

</BODY>

</HTML>

3.3. Xây dựng một số trang web kết hợp PHP và MySQL

3.3.1. Xây dựng trang đăng nhập

Trước hết chúng ta phải thiết kế và xây dựng mô hình cơ sở dữ liệu ứng với từng lệnh bên dưới sau đó mới tiến hành triển khai lập trình.

user( id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL, password CHAR(50) NOT NULL, level CHAR(1) NOT NULL, PRIMARY KEY(id));

Chèn một dòng dữ liệu vào trong bảng user:

insert into user(username,password,level) values ("admin","12345","2") ("abc","12345","1");

Vậy là chúng ta đã có cơ sở dữ liệu như mô hình trên. Tiếp đến chúng ta thiết kế Form HTML để có màn hình đăng nhập khi người dùng truy cập.

Hình 3 8 Giao diện trang đăng nhập form action login php 3

Hình 3.8. Giao diện trang đăng nhập

<form action="login.php" method="post">

Username: <input type="text" name="username" size="25" /><br /> Password: <input type="password" name="password" size="25" /><br />

<input type="submit" name="ok" value="Dang Nhap" />

</form>

Tiếp đến chúng ta tiến hành kiểm tra dữ liệu từ form

<?php if(isset($_POST['ok'])){

if($_POST['username'] == NULL){

echo "Please enter your username<br />";

}

else{


}


$u=$_POST['username'];

if($_POST['password'] == NULL){

echo "Please enter your password<br />";

}

else {


}

}

?>


$p=$_POST['password'];

Đoạn code ở trên sẽ kiểm tra xem người dùng có tiến hành nhấn nút đăng nhập hay không. Và nếu có thì chúng ta sẽ xét tiếp tình trạng người dùng có để trống các ô username và password hay không. Nếu có chúng ta sẽ thông báo lỗi ở bên trên form, để người sử dụng tiến hành nhập liệu.

Kế đến chúng ta kiểm tra xem có tồn tại hai biến $u và $p (chỉ khi người dùng đăng nhập thành công thì mới có thể tạo ra 2 biến đó). Tiếp đến chúng ta tiến hành kết nối cơ sở dữ liệu.

<?php

$conn=mysql_connect("localhost","root","root") or die("can't connect this database");

mysql_select_db("project",$conn);

?>

Kiểm tra username và password người sử dụng vừa nhập có trùng khớp với thông tin có trong cơ sở dữ liệu hay không?. Nếu không thì chúng ta sẽ báo lỗi ngay. Ngược lại sẽ tiến hành lấy dữ liệu từ bảng và gán vào session. Để có thể quản lý phiên làm việc một cách hiệu quả trên mọi trang của khu vực admin.

<?php

if($u && $p){

$conn=mysql_connect("localhost","root","root") or die("can't connect this database");

mysql_select_db("project",$conn);

$sql="select * from user where username='".$u."' and password='".$p."'";

$query=mysql_query($sql); if(mysql_num_rows($query) == 0){


}

else{


}

}

?>

echo "Username or password is not correct, please try again";


$row=mysql_fetch_array($query); session_start(); session_register("userid"); session_register("level");

$_SESSION['userid'] = $row[id];

$_SESSION['level'] = $row[level];

Như vậy code hoàn chỉnh cho ứng dụng này là như sau:

<?php if(isset($_POST['ok'])){

if($_POST['username'] == NULL){

echo "Please enter your username<br />";

}

else{


}


$u=$_POST['username'];

if($_POST['password'] == NULL){

echo "Please enter your password<br />";

}

else{


}


$p=$_POST['password'];

if($u && $p){

$conn=mysql_connect("localhost","root","root") or die("can't connect this database");

mysql_select_db("project",$conn);

$sql="select * from user where username='".$u."' and password='".$p."'";

$query=mysql_query($sql); if(mysql_num_rows($query) == 0){

echo "Username or password is not correct, please try again";

}

else{


}}}

?>


$row=mysql_fetch_array($query); session_start(); session_register("userid"); session_register("level");

$_SESSION['userid'] = $row[id];

$_SESSION['level'] = $row[level];

<form action=login.php method=post>

Username: <input type=text name=username size=25 /><br /> Password: <input type=password name=password size=25 /><br />

<input type=submit name=ok value="Dang Nhap" />

</form>

3.3.2. Xây dựng trang thêm thành viên

Sau khi đăng nhập vào trang admin người dùng sẽ được đẩy sang trang quản lý admin, tại đây chỉ những ai đã đăng nhập đúng với username và password trong cơ sở dữ liệu và có quyền hạn level là 2 thì mới có thể truy xuất vào trang này. Vì vậy chúng ta cần thao tác kiểm tra session để quản lý phiên làm việc của người sử dụng. Đặt đoạn code sau ở những trang muốn kiểm tra quyền truy cập của người sử dụng.

<?php sessison_start();

if(isset($_SESSION['userid']) && $_SESSION['level'] == 2){

// tại đây thực thi các hoạt động khi đăng nhập thành công.

}else{

header("location: login.php"); exit();

}

?>

Như vậy tại trang add_user.php chúng ta cũng đặt đoạn code trên và viết thêm 1 form thực thi công việc thêm thành viên.

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 15/07/2022