baocao

Màu nền
Font chữ
Font size
Chiều cao dòng

BÁO CÁO THỰC HIỆN ĐỒ ÁN

KHÓA HỌC CHUYÊN ĐỀ PHP - MySQL

Đề tài: Website Hỗ Trợ Đặt Cược Bóng Đá Trực Tuyến.

- Nhóm sinh viên thực hiện:

1. Phùng Đức Anh

2. Nguyễn Ngọc Thiện

3. Nguyễn Quang Thế

4. Nguyễn Bảo Ngọc (Em).

I. Mô tả hoạt động của hệ thống :

- Phát hành :

Card do ta phát hành với các loại card được cập nhật riêng (có thể theo từng yêu cầu của khách hàng.) Có trạng thái block được dùng để khóa trước khi có người mua và tự động khóa lại khi user đã add xong card .

Hoạt động : Khách hàng mua card, và add card vào tài khoản của mình.( khi này sẽ diễn ra quá trình check xem đúng id_card , pass_card và trạng thái đã mở hay chưa.

Tổng sổ tiền của khách hàng sẽ được cộng thêm vào tổng tiền của khách.

- Quá trình đặt cửa diễn ra như sau :

+ Khách hàng đăng nhập vào hệ thống để được sử dụng các tính năng của .

+ Xem các trận đấu được admin chấp nhận đặt trên site qua bảng dữ liệu Matches

+ Ở đây khách hàng sẽ chọn đội của mình đặt với tỉ lệ ăn do admin quyết định theo tính toán giá thị trường.

+ Cách chọn cược được lấy từ bảng trạng thái. ( Bảng này được Admin cập nhật theo ý

Có thể là bao gồm các trạng thái : thắng, thua, hòa, hay các trạng thái đặt cược phổ biến của các cược bóng đá như : 0:0 còn gọi là đồng banh , 0:1/4 còn gọi là đồng banh nửa trái.v.v. ) với số tiền mình chọn được kiểm tra nhở hơn hoặc bằng tổng số tiền có trong tài khoản ) Số tiền này được tự động trừ đi và lưu vào trong bảng đặt cược của các người dùng.

+ Trước giờ đấu số phút tùy admin quyết định ( các trận sẽ được khóa bằng trạng thái khóa trận đấu của bảng matches .

+ Toàn bộ thông tin về các người dùng đặt cược được lưu trong bảng cơ sỏ dữ liệu đặt cược.

+ Thông tin về kết quả trận đấu sẽ được Admin cập nhật vào bảng kết quả

Và nhấn thực thi ( tức sẽ kiểm tra từng user_id so sánh với status trong bảng đặt của với bảng kết quả nếu giống nhau sẽ tự động chuyển tiền vào trong tài khoản của user với số tiền bằng số tiền đặt nhân với tỉ lệ định trước của trận đấu đó còn nếu thua thì không được chuyển hoặc chuyển về tài khoản số tiền ít hơn tùy theo cách tính cho trận đấu đó.

Kết thúc : Người dùng có thể yêu cầu rút tiền nếu thắng khi liên hệ với admin qua điện thoại Admin sẽ chuyển số tiền người dùng thắng qua paypal hay tài khoản mà người dùng yêu cầu ) Quá trình này không được tự động để đảm bảo an toàn lần cuối cho hệ thống của Admin.

II. Giới thiệu thực tế :

Trong bài này chỉ nói đến hình thức cá cược trong 1 trận đấu (bet single).

Hiện tại có các loại cá cược phổ biến cho 1 trân đấu sau:

1. Cá theo tỷ lệ Châu á.

2. Cá theo tỷ lệ Châu âu.

3. Đặt cược tỷ số.

4. Đặt cược số bàn thắng trong trận đấu.

Từ trước tới nay dân Việt Nam và Châu á thường chơi theo tỷ lệ gọi là tỷ lệ châu á (Handicap asia), mặc dù tỷ lệ châu âu đơn giản và dễ hiểu hơn nhiều. Các tỷ lệ nhà cái đưa ra có thể là:

0:0 còn gọi là đồng banh

0:1/4 còn gọi là đồng banh nửa trái

0:1/2 còn gọi là chấp nửa quả hay chấp hòa

0:3/4 còn gọi là chấp 1 được nửa

0:1 còn gọi là chấp 1 hòa

0:1 1/4 chấp 1 thua nửa tiền

0:1 1/2 chấp 1 đứt

0:1 3/4 chấp 2 được nửa

0:2 chấp 2 hòa

0:2 1/4 chấp 2 được nửa

0:2 1/2 chấp 2 đứt.

......

Ví dụ :

Giả sử trận Chelsea vs MU ghi thế này: Chelsea 1.92 0:1/4 1.95 MU

Giải thích :

Tỷ lệ in đậm ở giữa là tỷ lệ bóng châu á, ở đây là 0:1/4 nghĩa là Chelsea chấp đồng banh nửa trái (hòa thì cửa trên thua nửa tiền, cửa dưới được nửa tiền).

Nếu tỷ số trận đấu là hòa: bạn đặt 100$ cho cửa Chelsea thì bạn bị thua 50$, còn bạn đặt 100$ cho cửa MU thì sô tiền bạn được là (100*1.95 -100)/2= (192-100)/2 =47.5$

Nếu Chel thắng trong trận đấu đó, bạn đặt 100$ cửa Chel, bạn sẽ nhận được cả gốc và lãi là: 100*1.92 = 192$ còn nếu đặt của Mu thì bạn thua.

_Nếu MU thắng trong trận đấu trên thì bạn đặt cửa Chel, bạn thua, bạn đặt của MU 100$ thì bạn sẽ có 100*1.95 = 195$.

2 con số 1.92 và 1.95 ở đây là tỷ lệ nhân với tiền bạn đặt cược cho mỗi cửa tương ứng nếu bạn thắng.

Nếu trận Chelsea & MU ghi thế này: Chelsea 1.92 1/4:0 1.95 MU nghĩa là MU chấp đồng banh nửa trái. Cách tính ngược với ở trên, trận đấu hòa thì đi Chelsea được nửa tiền còn đi MU thua nửa tiền.

Giả sử trận Chelsea & MU ghi thế này: Chelsea 1.92 0:1/2 1.80 MU

Nghĩa là : Chel chấp nửa trái hay chấp hòa, nếu trận đấu hòa, người đi Chel sẽ thua, dĩ nhiên người đi MU thắng, xin ghi nhớ đặt 100$ cho cửa MU bạn chỉ nhận được cả gốc là 100*1.80 = 180$ chứ không nhận được cả 100$ đâu.

Giả sử trận Chelsea & MU ghi thế này: Chelsea 2.06 0:3/4 1.60 MU

Nghĩa là : chel chấp 1 được nửa, chel thắng 1 bàn cách biệt, bạn đặt cược cửa chel 100$ bạn sẽ có (100*2.06 - 100)/2 = (206 - 100)/2 = 53$. (chel thắng 1 bàn cách biệt bạn được 53$), còn nếu trong trường hợp này bạn đặt cửa MU 100$ thì bạn thua nửa tiền tức là bạn mất 50$. còn nếu chel thắng 2 bàn cách biệt, bạn đặt 100$ cửa chel bạn sẽ nhận được 100*2.06 = 206$.

Xin các bạn lưu ý, tỷ lệ châu á chỉ áp dụng trong 90 phút của trận đấu bất kể trận đấu đó có hiệp phụ hay không.

Trường hợp trận đấu mà hõan lại trước phút 70 thì tất cả các đặt cược không còn ý nghĩa, bạn được hòan tiền còn trận đấu hõan từ phút 70 trở đi thì kết quả trận đấu cho đến phút đó sẽ có ý nghĩa với dân cá cược như bình thường để xét thắng thua và cho dù trận đấu đó sẽ đấu lại những phút chưa đấu vào một ngày khác và tỷ số trận đấu có thể thay đổi. trước đây giải ngoại hạng Anh từng có rất nhiều trận đấu mất điện đột ngột khi trận đấu còn khỏang 20' và trận đấu đó buộc phải hoãn, sau này người ta đã điều tra ra rằng những người quản lý hệ thống điện ở sân vận động đã bị mua chuộc bởi giới cá độ từ Macao hay Malai.

-Bình luật đặc biệt về tỷ lệ của Trận Việt Nam - Myanmar ở seagames 23 có tỷ lệ

0:1 1/2 nghĩa là Việt nam của trên, nhà cái chấp 1 quả đứt.

Nếu trận đấu đó VN thắng cách biệt 1 bàn thì người đặt cược vào cửa VN vẫn thua độ. (như mọi người đã biết trận này VN thắng 1-0). Như mọi người biết ở thời điểm đó bằng thực lực Tuyển VN thừa sức thắng 2 bàn cách biệt chính vì vậy bao dân cá độ + lòng yêu nước + lòng tin đã đặt cược vào cửa VN sau khi nhà cái ra kèo VN chấp 1 quả rưỡi (1 thua đứt), và sao nữa ? nhà cái đã thao túng Vượng và Quyến để 2 cầu thủ này điều chỉnh kết quả chỉ để VN thắng 1 bàn cách biệt, 2 người thì không chắc ăn chính vì vậy họ đã đi gạ gẫm cả đội hình chính với cái lý lẽ trơ chẽn: VN thắng mà em vẫn có tiền, rồi em không bao giờ bán độ mà để VN thua. và 5 người trong số 9 người còn lại ra sân hôm đó đã tặc lưỡi nhận 20triệu chỉ để VN thắng 1 bàn. dám cá rằng nếu hôm đó Tài Em hoặc Tấn tài mà ghi bàn nâng tỷ số lên 2-0 thì kiểu gì cũng có thằng sút tung lưới đội nhà kiểu Lã xuân Thắng ngày xưa.

III.Thiết kế các biểu đồ :

1. Biểu đồ phân cấp chức năng :

2. Sơ đồ thực thể liên kết :

IV. Thiết kế cơ sở dữ liệu cho hệ thống :

1. Các bảng dữ liệu :

1. Bảng User :

STT Tên trường Kiểu dữ liệu Chi chú

1 Username Varchar (25) PK

2 Password Varchar (25)

3 Summoney Decimal (5,2)

4 Tel Int (15)

5 Email Varchar(40)

6 Callname Varchar(40)

7 Activate Tinyint(1) Xác định đóng mở tài khoản người dùng

2. Bảng Admin:

STT Tên trường Kiểu dữ liệu Chi chú

1 Username Varchar (25) PK

2 Password Varchar (25)

3 Email Varchar (50)

3. Bảng các loại card :

STT Tên trường Kiểu dữ liệu Chi chú

1 Cardid Varchar (25) PK

2 Password Varchar (25)

3 Lock1 Smallint(1)

4 Money Decimal(5,5) Số tiền card chứa

4. Bảng trận đấu Matches :

STT Tên trường Kiểu dữ liệu Chi chú

1 matchid Char(5) PK

2 Timedate Date()

3 Lock2 Smallint (1)

4 Team1 Char(10)

5 Team2 Char(10)

6 Score Varchar(20) Null update sau trận đấu

7 Comment Varchar(255) Null ghi chú sau trận đấu

5. Bảng các lựa chọn cho từng trận statusbetmatch:

STT Tên trường Kiểu dữ liệu Chi chú

1 matchid Char(5) PK, FK liên kết đến Matches

2 statusid Int(10) PK

3 Ratio1 Decimal(5,5)

4 Ratio2 Decimal(5,5)

5

5. Bảng đội bóng team :

STT Tên trường Kiểu dữ liệu Chi chú

1 Teamid Int (5) PK

2 Name Varchar (50)

3 Flag

6. Bảng trạng thái đặt của các user ( userbet ) :

STT Tên trường Kiểu dữ liệu Chi chú

1 Username Varchar (25) PK, FK liên kết bảng user

2 Statusid Int (10) PK, FK Liên kết bảng status

3 matchid Char(5) PK, FK liên kết bảng trận đấu

4 Moneybet Decimal(5,2) Số tiền đặt cho trận này

5 Choiceteam tinyint(1) Chọn team1 hay team2

Khóa chính của bảng là usernam và matchid và statusid

6 Processdone Tinyint(1) Xác định xem đã xử lí chuyển tiền cho người dùng sau khi có kết quả đặt cược hay chưa.

7. Bảng trạng thái trận đấu matchstatus :

STT Tên trường Kiểu dữ liệu Chi chú

1 Statusid Char(10) PK

2 Statusname Char(25)

8. Bảng kết quả trận đấu resultmatches :

STT Tên trường Kiểu dữ liệu Chi chú

1 Matchid Char(5) PK, FK Matches

2 Statusid Char(10) PK, FK Status

3 Choice tinyint(1) Xác định người dùng chọn đội nào

4 processdone Tinyint(1) Xác định xem trạng thái đã xử lý hay chưa ( tức khi đã có kết quả trận đấu đã chuyển tiền vào tài khoản của user hay chưa )

2.Thiết kế câu lệnh SQL :

-- phpMyAdmin SQL Dump

-- version 2.11.1

-- http://www.phpmyadmin.net

--

-- Host: localhost

-- Generation Time: Jul 28, 2008 at 04:25 PM

-- Server version: 5.0.45

-- PHP Version: 5.2.4

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--

-- Database: 'football'

--

-- --------------------------------------------------------

--

-- Table structure for table 'admin'

--

CREATE TABLE 'admin' (

'username' varchar(25) NOT NULL,

'password' varchar(25) NOT NULL,

'email' varchar(40) default NULL,

PRIMARY KEY ('username')

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--

-- Table structure for table 'card'

--

CREATE TABLE 'card' (

'cardid' varchar(25) NOT NULL,

'password' varchar(25) NOT NULL,

'lock1' tinyint(1) NOT NULL,

'money' float NOT NULL,

PRIMARY KEY ('cardid')

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--

-- Table structure for table 'matches'

--

CREATE TABLE 'matches' (

'matchid' varchar(10) NOT NULL,

'Timedate' datetime default NULL,

'Lock2' smallint(1) default NULL,

'Team1' varchar(10) NOT NULL,

'Team2' varchar(10) default NULL,

'Score' varchar(20) default NULL,

'Comment' varchar(255) default NULL,

'display' tinyint(1) unsigned default '1',

PRIMARY KEY ('matchid')

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--

-- Table structure for table 'matchstatus'

--

CREATE TABLE 'matchstatus' (

'statusid' varchar(10) NOT NULL,

'statusname' varchar(125) default NULL,

PRIMARY KEY ('statusid')

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Dumping data for table 'matchstatus'

--

INSERT INTO 'matchstatus' ('statusid', 'statusname') VALUES

('DC001', ' 0:0 Đồng banh '),

('DC002', '0:1/4 còn gọi là Ä'á»"ng banh ná»­a trái'),

('DC003', 'Chấp nửa quả hay chấp hòa'),

('DC004', '0:3/4 Chấp 1 Ä'ược ná»­a');

-- --------------------------------------------------------

--

-- Table structure for table 'resultmatch'

--

CREATE TABLE 'resultmatch' (

'Matchid' varchar(10) NOT NULL,

'Statusid' char(10) NOT NULL default '',

'Choice' smallint(1) default NULL,

PRIMARY KEY ('Matchid','Statusid')

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Dumping data for table 'resultmatch'

--

-- --------------------------------------------------------

--

-- Table structure for table 'statusbetmatch'

--

CREATE TABLE 'statusbetmatch' (

'matchid' varchar(10) NOT NULL,

'statusid' varchar(10) NOT NULL,

'Ratio1' float default NULL,

'Ratio2' float default NULL,

PRIMARY KEY ('matchid','statusid')

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Dumping data for table 'statusbetmatch'

--

INSERT INTO 'statusbetmatch' ('matchid', 'statusid', 'Ratio1', 'Ratio2') VALUES

('TD110', 'DC002', 2.05, 1.85),

('TD110', 'DC001', 3.05, 1.85);

-- --------------------------------------------------------

--

-- Table structure for table 'team'

--

CREATE TABLE 'team' (

'Teamid' varchar(5) default NULL,

'Name' varchar(50) default NULL,

'Flag' varchar(100) default NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Dumping data for table 'team'

--

INSERT INTO 'team' ('Teamid', 'Name', 'Flag') VALUES

('DB001', 'England', 'UK.ICO'),

('DB002', 'France', 'FR.ICO'),

('DB003', 'Germany', 'GR.ICO'),

('DB004', 'Italia', 'IT.ICO'),

('DB005', 'Bá»" Đà o Nha', 'PORT.ICO'),

('DB006', 'Tây Ban Nha', 'SP.ICO'),

('DB007', 'Mỹ', 'USA.ICO'),

('DB008', 'Nauy', 'ND.ICO');

-- --------------------------------------------------------

--

-- Table structure for table 'user'

--

CREATE TABLE 'user' (

'username' varchar(25) NOT NULL,

'password' varchar(25) NOT NULL,

'summoney' float default '0',

'tel' int(15) default NULL,

'email' varchar(40) default NULL,

'callname' varchar(40) default NULL,

'activate' tinyint(3) unsigned default '1',

PRIMARY KEY ('username')

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- --------------------------------------------------------

--

-- Table structure for table 'userbet'

--

CREATE TABLE 'userbet' (

'Username' varchar(25) NOT NULL default '',

'Statusid' varchar(10) NOT NULL default '0',

'matchid' varchar(10) NOT NULL,

'Moneybet' float default NULL,

'Choiceteam' tinyint(1) default NULL,

'processdone' tinyint(1) NOT NULL default '0',

PRIMARY KEY ('Username','Statusid','matchid')

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--

-- Dumping data for table 'userbet'

--

V. Thiết kế giao diện chương trình

Chia làm ba phần :

Nên tham khảo giao diện site :

http://cadovn.com/Default.aspx?LeagueID=Hot

- Phần Đầu : Gồm Banner làm bằng flash ( Flashswish ... )

- Thân gồm chức năng chính ở giữa và có thể gồm bốn block sau :

Block lấy tin tức từ trang tin thể thao ( hình thức thiết kế đọc tin từ RSS )

Block đọc tin người thắng cược từ bảng dữ liệu của hệ thống

Block hỗ trợ trực tuyến ( có thể lấy mẫu code chat script vào )

Thiết kế block đọc tin RSS từ báo thể thao

http://www.euro2008.uefa.com/rss/index.xml

( dùng link làm link minh họa ví dụ )

Chức năng admin nhập link và từ động lấy tin về .

- Phần cuối : giới thiệu tên đề tài người làm liên hệ

VI. Tài Liệu Hướng Dẫn Cấu Hình Website

*) Cấu hình máy chủ Server: Để cấu hình được website yêu cầu Server phải được chạy với tốc độ tương đối để các máy Client có thể truy cập vào website tương đối ổn định.

Với yêu cầu cấu hình của Server như:

CPU : từ 2.50 GHZ trở lên.

RAM: từ 512 MB trở lên.

Khi có được Server với tốc độ tương đối ổn, ta bắt đầu cấu hình chạy cho website. Có thể sử dụng một số Chương trình xử lý trên Server như mã nguồn mở: Apache, .. hay sử dụng ngay bộ IIS(Internet Information Service) tích hợp ngay trong bộ cài window.

Khi có được Server, chỉ cần kiểm tra với trình duyệt bất kỳ: nếu chạy với URL là : http://localhost/ chạy được là đã cấu hình được xử lý trên Server.

*) Tiếp theo cấu hình với chương trình xử lý được với website xây dựng bằng mã nguồn mở PHP&Mysql

Để cấu hình yêu cầu cấu hình PHP từ phiên bản 5.00 trở lên, và Mysql từ 5.00 trở lên. Có thể dùng bản PHP Version 5.1.6 và Mysql Version 5.0.24a Community-nt.

Nếu là bản hỗ trợ tự động thì có thể cấu hình xong cho Server. Chỉ cần cấu hình tới website.

Chi Tiết Cấu Hình Website

- Cấu hình server với IIS

Lựa chọn theo đường dẫn: Control Panel => Add or Remove Programs => Add or Remove Window Components

Lựa chọn Application Server và lựa chọn Internet Information Services(IIS) và làm theo hướng dẫn. là đã cài đặt xong IIS.

Khi cài đặt xong IIS chỉ cần gõ trong URL là http://localhost nếu có hiển thị trang Start IIS là có thể sử dụng được IIS của Window

- Cấu hình PHP&Myql với phiên bản PHP-5.2.0-win32-installer.msi và Mysql-essential-5.0.27-win32.msi

Quá trình cài đặt bộ Setup theo hướng dẫn là có thể cài đặt xong PHP.

Mặc định thư mục cài đặt là C:\PHP. Khi cài đặt xong cần có thêm thư viện hỗ trợ cho Mysql, vì bản 5.2.0 không tích hợp bên trong. Cần copy 2 file libmysql.dll và php_mysql.dll của phiên bản 5.2.0 vào thư mục C:\PHP\ext

Tiếp theo chỉnh trong file PHP.ini tại dòng \\extension=php_mysql.dll thành extension=php_mysql.dll

Tiếp theo cài đặt Mysql:cài đặt theo chế độ tự động

Khi cài đặt xong thì có thể sử dụng được Server xử lý với các file dạng PHP.

Để kiểm tra thử viết một file như: vidu.php

<?php

Echo "Hello World";

?>

Để file vidu.php vào thư mục C:\Inetpub\wwwroot sau đó vào trình duyệt gõ URL: http://localhost/vidu.php.

Nếu thấy chữ Hello World là đã cấu hình xong cho Server về mặt xử lý với PHP&Mysql.

- Cấu hình Website

+) Cài đặt CSDL cho website: sử dụng các chương trình hỗ trợ cho cơ sở dữ liệu như EMS SQL Manager 2005 for MySQL hoặc phpMyAdmin để sử dụng csdl.

Vào EMS chọn New SQL Script vào Open Script chọn nơi chứa file database_ots.sql như C:/mwebsite/database_ots.sql tiếp theo chạy Execute Script là đã cài đặt xong CSDL

+) Cài đặt thư mục cho website: copy website vào một thư mục trên đĩa cứng. Ví dụ C:\mywebsite . vào Start => Run gõ inetmgr để vào IIS.

Khi vào được IIS cần vào My website lựa chọn chuột phải

IX. Công Cụ Phát Triển Lập Trình Và Thiết Kế Website

*) Công cụ hỗ trợ phát triển

- Emeditor: http://www.emeditor.com/

- Dreamweaver MX 2004: http://www.macromedia.com/

- Photoshop : http://www.photoshop.com/

- SQL Manager 2005 for MySQL: http://www.sqlmanager.net/

- . . . .

*) Tài liệu tham khảo

- PHP Manual(Edited by Stig Sæther Bakken Egon Schmid): http://www.php.net/

- http://www.w3schools.com/ (PHP, HTML, Javascript, XHTML,..)

- How to Do Everything with HTML & XHTML(by James H. Pence )

Bạn đang đọc truyện trên: Truyen2U.Pro

#baocao