Bài tập PHP

Trang PHP có truy vấn dữ liệu từ database.

Cho database db_tintuc gồm các table như sau:

create table Category(

cate_id int not null AUTO_INCREMENT,

cate_name varchar(50) not null,

primary key(cate_id)

)

create table Users(

userid int not null AUTO_INCREMENT,

fullname varchar(50) not null,

username varchar(30) not null,

password varchar(30) not null,

level int,

primary key(userid)

)

pdf14 trang | Chuyên mục: PHP | Chia sẻ: dkS00TYs | Lượt xem: 2095 | Lượt tải: 3download
Tóm tắt nội dung Bài tập PHP, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
1 
BÀI TẬP PHP 
GV: Nguyễn Hữu Thể 
Trang PHP có truy vấn dữ liệu từ database. 
Cho database db_tintuc gồm các table như sau: 
create table Category( 
 cate_id int not null AUTO_INCREMENT, 
 cate_name varchar(50) not null, 
 primary key(cate_id) 
) 
create table Users( 
 userid int not null AUTO_INCREMENT, 
 fullname varchar(50) not null, 
 username varchar(30) not null, 
 password varchar(30) not null, 
 level int, 
 primary key(userid) 
) 
create table News( 
 news_id int not null AUTO_INCREMENT, 
 cate_id int not null, 
 news_name varchar(50) not null, 
 news_title varchar(200) not null, 
 news_content varchar(500) not null, 
 news_image varchar(50), 
 userid int, 
 status int, 
 primary key(news_id), 
 constraint fk_new_cate foreign key(cate_id) references Category(cate_id), 
 constraint fk_new_user foreign key(userid) references Users(userid) 
) 
insert into Category(cate_name) values('Văn hóa'), 
('Xã hội'), 
('Thế giới'), 
('Giáo dục'), 
('Nghệ thuật'), 
('Thể thao') 
insert into Users(fullname, username, password, level) values 
('Administrator', 'admin', 'admin', 2), 
('User', 'user', 'user', 1) 
2 
PHẦN QUẢN TRỊ (CƠ BẢN) 
Trang kết nối database: dbcon.php 
<?php 
$con = mysql_connect("localhost","root","root"); 
if (!$con) 
{ 
 die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db("db_tintuc", $con); 
mysql_query("set names 'utf8'"); //Hiển thị tiếng Việt Unicode 
?> 
Trang add_category.php 
Thêm dữ liệu vào loại tin 
Tên loại 
process_add_category.php 
<?php 
require("dbcon.php"); 
$name = $_POST["cate_name"]; 
$sql = "insert into Category(cate_name) values('".$name."')"; 
mysql_query($sql); 
echo "Đã thêm"; 
?> 
Trang thêm tin tức, user tương tự như category (nhiều cột dữ liệu hơn) 
Trang quản lý loại tin (thêm, xóa, sửa table category): manage_cate.php 
Quản lý loại tin 
Thêm mới 
 Mã loại 
 Tên loại 
 Sửa 
 Xóa 
<?php 
3 
$sql = "select * from Category"; 
$result = mysql_query($sql); //$result như mảng 2 chiều 
while($row = mysql_fetch_array($result)){ //$row như mảng 1 chiều 
 echo " 
 ".$row['cate_id']." 
 ".$row['cate_name']." 
 <a 
href=\"edit_category.php?id=".$row['cate_id']."&name=".$row['cate_name']."\">Sửa
 Xóa 
 "; 
} 
mysql_close($con); 
?> 
Giao diện: khi rê chuột vào link thêm 
Link sửa: 
4 
Link xóa: 
Trang edit_category.php 
Sửa dữ liệu của loại tin 
5 
<?php 
require("dbcon.php"); 
$id = $_GET["id"]; 
$sql = "select * from category where cate_id = ".$id; 
$result = mysql_query($sql); 
$row=mysql_fetch_array($result); 
if($row) //nếu có dữ liệu 
{ 
 echo "<input type=text name=cate_id readonly 
 value=\"".$id."\"> "; 
 //echo "; 
 echo "<input type=text name=cate_name 
 value=\"".$row['cate_name']."\">"; 
} 
mysql_close($con); 
?> 
Lưu ý: mã loại tin không sửa, code bên trên dùng thuộc tính readonly 
Trang xử lý sửa: process_edit_cate.php 
<?php 
//Trang process_edit_cate.php, xử lý sửa dữ liệu 
6 
require("dbcon.php"); 
$id = $_POST["cate_id"]; 
$name = $_POST["cate_name"]; 
$sql = "update Category set cate_name='".$name."' 
where cate_id= ".$id; 
mysql_query($sql); 
header("location: manage_cate.php"); 
?> 
Trang xóa dữ liệu (được gọi từ trang manage_cate.php): delete_category.php 
<?php 
require("dbcon.php"); 
$id = $_GET["id"]; 
$sql = "delete from Category where cate_id=".$id; 
$result = mysql_query($sql); 
mysql_close($con); 
header("location: manage_cate.php"); //hàm chuyển đến trang khác 
?> 
Trang quản lý tin tức, user tương tự như category (nhiều cột dữ liệu hơn) 
PHẦN QUẢN TRỊ (NÂNG CAO: CÓ KIỂM TRA ĐĂNG NHẬP) 
Trang đăng nhập: login.php 
Nhập thông tin đăng nhập 
 Username 
 Password 
Sinh viên tự bổ sung thêm đoạn JavaScript kiểm tra nhập liệu 
7 
Trang xử lý đăng nhập (giả sử nhập đủ user và pass): process_login.php 
<?php 
//Chu y khi tao trang co Su dung Encoding la UTF-8 rat de bi loi session, do ky 
tu BOM 
include("dbcon.php"); 
$user = $_POST["user"]; 
$pass = $_POST["pass"]; 
$sql = "select * from Users where username='".$user."' and password = 
'".$pass."'"; 
$result = mysql_query($sql); 
$row = mysql_fetch_array($result); 
if($row){ 
 //Nếu đăng nhập thành công, khởi tạo session cho userid, username và level 
 session_start(); 
 $_SESSION['user_id']=$row['userid']; 
 $_SESSION['user_name']=$row['username']; 
 $_SESSION['user_level']=$row['level']; 
 mysql_close($con); 
 header("location: myaccount.php"); 
} 
else 
 header("location: noaccount.php"); 
?> 
Trang noaccount.php 
Vui lòng nhập lại username và password 
<?php 
require("login.php"); 
?> 
Giả sử nhập sai username hoặc password 
8 
Trang xử lý đăng nhập sẽ chuyển sang trang noaccount.php 
9 
Trang myaccount.php"); 
<?php 
 echo "Xin chào ".$_SESSION['user_name']; 
 echo ""; 
 echo "Bạn đã đăng nhập thành công"; 
 echo ""; 
 echo "Trang quản lý dữ liệu"; 
?> 
Nếu đăng nhập thành công, trang myaccount.php được gọi 
Click chuột vào “Trang quản lý dữ liệu” sẽ gọi trang manage_cate.php 
Trang manage_cate.php (bổ sung thêm kiểm tra session đăng nhập) 
Chỉ user đăng nhập là có level=2 mới được cập nhật dữ liệu 
<?php 
//Nếu user đã đăng nhập với quyền admin 
//mới có thể vào trang này 
require("dbcon.php"); 
if(isset($_SESSION['user_id']) && ($_SESSION['user_level']==2)) 
{ 
?> 
Quản lý loại tin 
Thêm mới 
 Mã loại 
 Tên loại 
 Sửa 
 Xóa 
<?php 
$sql = "select * from Category"; 
$result = mysql_query($sql); //$result như mảng 2 chiều 
while($row = mysql_fetch_array($result)){ //$row như mảng 1 chiều 
 echo " 
10 
 ".$row['cate_id']." 
 ".$row['cate_name']." 
 Sửa 
 Xóa 
 "; 
} 
mysql_close($con); 
} 
else 
 header("location: login.php"); 
?> 
Trang edit_category.php gọi trang process_edit_cate.php, trang này kiểm tra user có đăng 
nhập mới cho phép cập nhập 
Sửa dữ liệu của loại tin 
<?php 
require("dbcon.php"); 
$id = $_GET["id"]; 
$sql = "select * from category where cate_id = ".$id; 
$result = mysql_query($sql); 
$row=mysql_fetch_array($result); 
if($row) //nếu có dữ liệu 
{ 
 echo "<input type=text name=cate_id readonly 
 value=\"".$id."\"> "; 
 //echo "; 
 echo "<input type=text name=cate_name 
 value=\"".$row['cate_name']."\">"; 
} 
mysql_close($con); 
?> 
Trang process_edit_cate.php (bổ sung thêm kiểm tra session đăng nhập) 
<?php 
//Trang process_edit_cate.php, xử lý sửa dữ liệu 
require("dbcon.php"); 
$id = $_POST["cate_id"]; 
$name = $_POST["cate_name"]; 
if(isset($_SESSION['user_id']) && ($_SESSION['user_level']==2)) 
{ 
 $sql = "update Category set cate_name='".$name."' 
 where cate_id= ".$id; 
 mysql_query($sql); 
 header("location: manage_cate.php"); 
} 
?> 
11 
Trang delete_category.php (bổ sung thêm kiểm tra session đăng nhập) 
<?php 
require("dbcon.php"); 
$id = $_GET["id"]; 
if(isset($_SESSION['user_id']) && ($_SESSION['user_level']==2)) 
{ 
 $sql = "delete from Category where cate_id=".$id; 
 $result = mysql_query($sql); 
 mysql_close($con); 
 header("location: manage_cate.php"); //hàm chuyển đến trang khác 
} 
?> 
12 
PHẦN HIỂN THỊ DỮ LIỆU 
Thiết kế phần hiển thị dữ liệu như các trang web tin tức. 
Một số giao diện gợi ý như sau: 
Giao diện 1: 
13 
Giao diện 2: 
14 
Giao diện 3: 
Giao diện khác: tham khảo các website trên mạng 
Ghi chú: sinh viên bổ sung thêm phần CSS cho giao diện trực quan hơn 

File đính kèm:

  • pdfBài tập PHP.pdf
Tài liệu liên quan