Chào các bạn, hôm nay hocweb.com.vn giới thiệu các bạn 1 bài tập rất
hay sử dụng trong PHP đó là bài tập về xử lý bình chọn trong PHP.
Giao diện bình chọn như sau:
Sau khi bình chọn xong thì kết quả sẽ hiện thị % các lượt bình chọn theo các tiêu chí chọn lựa ban đầu.
Để thực hiện bài lab này ta thực hiện các bước như sau:
Bước 1: Tạo cơ sỡ dữ liệu gồm 2 bảng
Bảng binhchon và bảng phương án như sau:
Table binhchon:
Table phuongan:
Bước 2:
Xây dưng lớp kết nối với cơ sỡ dữ liệu như sau:
<?php
$hostname_config = "localhost";
$database_config = "webbinhchon";
$username_config = "root";
$password_config = "";
$config = mysql_connect($hostname_config, $username_config,
$password_config) or die("Khong the connect");
mysql_select_db($database_config,$config);
mysql_query("set names 'utf8'");
?>
|
Tiếp tục ta tạo giao diện form bình chọn cho người dùng như kết quả ở trên với code như sau:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<p>BÌNH CHỌN</p>
<div id="binhchon">
<form id="form1" name="form1"
method="get" action="xulybinhchon.php">
Bạn nghĩ sao về chất lượng của trang
web hocweb.com.vn
<p>
<?php
require_once("Connections/config.php");
$s="select * from phuongan where
idBC=1";
$kq=mysql_query($s);
$i=0;
while($row=mysql_fetch_array($kq))
{
?>
<label>
<input id="radio"
type="radio" value="<?php echo $row['idPA'];?>"
name="idPA"
<?php if($i==0)
{echo" checked='checked' "; $i++;} ?>/>
</label>
<?php echo $row['Mota'];?><br
/><?php }?></p>
<p>
<label>
<input
id="button" type="submit" value="Xem kết quả"
name="Submit" />
</label>
</p>
</form>
</div>
</body>
</html>
|
|
|
Trong đó ta chú ý các ý sau:
1) Bài tập này trong câu hỏi ta sử dụng dữ liệu tĩnh
Bạn nghĩ sao về chất lượng của trang web
hocweb.com.vn chứ không phải lấy từ cơ sỡ dữ liệu lên
2) Ở đây ta chỉ xem xét kết quả bình chọn theo tiêu chí của idBC = 1 nghĩa là tương ứng nội dung trong cơ sỡ dữ liệu là
Bạn nghĩ hocweb.com.vn có giúp bạn học tập tốt hơn không?. Ta có thể
thay đổi idBC = 2, 3, 4 năm để tìm tiêu chí bình chọn khác.
3) Ở đây để xử lý nút check khi trang web load lên thì nút check được check ở ô đầu tiên ta xử lý như sau:
a) Gán $i = 0
b) Trong <input radio > ta thêm
|
<?php if($i==0) {echo" checked='checked' "; $i++;} ?>
|
và khi radio lặp 2 lần 2 thì nút check sẽ không check nữa.
Bước 2: Ta viết code xử lý bình chọn như sau cho file xulybinhchon.php
<?php ob_start();
require_once("Connections/config.php");
$idPA=$_GET["idPA"];
$qr1="update binhchon set SoLanChon = SoLanChon+1 where idBC=1";
$qr="update phuongan set SoLanChon = SoLanChon+1 where idBC=1 and
idPA=$idPA";
if(mysql_query($qr1) && mysql_query($qr))
header('location:ketquabinhchon.php');
else echo "That bai!";
?>
|
|
|
Ở đây ta chủ yếu viết code để cập nhật số lần chọn trong cả 2 trường hợp idBC=1 & idPA = $_GET["idPA"]
Bước 3: Ta cho hiện kết quả % của các lần bình chọn như trong đoạn code sau:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<table width="450" border="1" cellpadding="4">
<?php
require_once("Connections/config.php");
//$idBC=$_GET['idBC'];
$s="select * from binhchon where idBC=1";
$kq=mysql_query($s);
if ($d=mysql_fetch_array($kq))
{
$mota=$d["MoTa"];
}
$s="select sum(SoLanChon) as tongsolanchon from phuongan where
idBC=1";
$kq=mysql_query($s);
if ($d=mysql_fetch_array($kq))
{
$tongsobinhchon=$d["tongsolanchon"];
}
?>
<tr>
<td colspan="3"
bgcolor="#66CCFF" align="center"><?php echo $mota;
?></td>
</tr>
<?php
$s="select * from phuongan where idBC=1";
$kq=mysql_query($s);
while($d=mysql_fetch_array($kq))
{ $rong=($d["SoLanChon"]/$tongsobinhchon)*150;
$phantram=($d["SoLanChon"]/$tongsobinhchon)*100;
?>
<tr>
<td width="150"><?php echo
$d["Mota"]; ?></td>
<td width="150">
<table
width="150">
<tr>
<td
width="<?php echo $rong; ?>"
bgcolor="#FF0000"></td>
<td><?php echo
round($phantram,2); ?>%</td>
</tr>
</table>
</td>
<td width="150">So lan chon:
<?php echo $d["SoLanChon"]; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="3"
align="right">Tong so lan chon: <?php echo $tongsobinhchon;
?></td>
</tr>
</table>
</body>
</html>
|
|
|
Kết thúc bài lab.
Các bạn có thể coi thêm chuyên mục http://hocweb.com.vn/category/hocweb/php-mysql/php-co-ban/ để hiểu thêm bài lab này
Xem thêm tại
http://hocweb.com.vn/category/hocweb/php-mysql/php-co-ban/
----------------------------------------------------------------------------------------------------------------------------------------------------------
Nếu bạn thấy bài viết hữu ích, hãy nhấn +1 và các liên kết chia sẻ để website ngày càng phát triển hơn. Xin cám ơn bạn!
Đăng nhận xét