You are on page 1of 6

14/12/2013

Bi 17: Xy dng h thng bnh chn bng PHP v MYSQL | Din n hc lp trnh web
ng h n chnh hng Burberry BU3001 evara.vn u i 53%, ch cn 2.800.000 , duy nht ti Evara.vn. Click bit thm chi tit! Trang ch Din n Thnh vin Tr gip C g mi? C g mi? Lp trnh web PHP C hi ly bng H Kinh t Quc dn tuyensinh.neu-edutop.edu.vn H t xa. Hc trc tuyn, tit kim thi gian. Ph hp vi ngi i lm. NG K XT TUYN trongchi Hp th Thng bo Thot

nh du c nh du c Trang ch

Tm kim din n Din n Tm kim din n

Ch ang theo di Ch ang theo di

Tm kim...

Din n

Ngnh cng ngh phn mm

Tuyn nhn s ton din n - HLTW

Bi 17: Xy dng h thng bnh chn bng PHP v MYSQL


Tho lun trong 'PHP' bt u bi myhanh, 21/6/13. Theo di ch

myhanh
Moderator

lot bi trc, chng ta bn ti cc ng dng qun l ngi s dng, xy dng b m, to m bo m t phng chng nhng ngi c dng xu trn website. Tip theo, trong bi ny chng ta s bn v cch thc xy dng h thng cho php ngi dng bnh chn khi h tin hnh thm ving website ca chng ta. xy dng h thng bnh chn chng ta cn phn tch xem h thng ny cn c bao nhiu bng quan h. A- Phn tch v thi t k c s d li u:

Trong tnh hung ny chng ta cn 1 bng cu hi v 1 bng cu tr li. Phn tch quan h gia chng ta c: 1 Cu hi c nhiu cu tr li. 1 cu tr li ch dnh cho 1 cu hi. Vy gia 2 bng ny s pht sinh m t kha ngoi, l kha dng lin kt gia hai bng ny.

Vy ta c c php to 2 bng nh sau. Bng cu hi ( question)

M (SQL):

m y s q l >C R E A T ET A B L Eq u e s t i o n ( q i dI N T ( 1 0 )U N S I G N E DN O TN U L LA U T O _ I N C R E M E N T , q t i t l eV A R C H A R ( 2 5 5 )N O TN U L L , q d a t eD A T EN O TN U L LD E F A U L T' 0 0 0 0 0 0 0 0 ' , P R I M A R YK E Y ( q i d ) ) ;

Bng cu tr li (anwser)
forum.hoclaptrinhweb.com/threads/bai-17-xay-dung-he-thong-binh-chon-bang-php-va-mysql.1272/ 1/6

14/12/2013

Bi 17: Xy dng h thng bnh chn bng PHP v MYSQL | Din n hc lp trnh web

M (SQL):

m y s q l >C R E A T ET A B L Ea n s w e r ( a i dI N T ( 1 0 )U N S I G N E DN O TN U L LA U T O _ I N C R E M E N T , q i dI N T ( 1 0 )U N S I G N E DN O TN U L L , a t i t l eV A R C H A R ( 2 5 5 )N O TN U L L , a c o u n tI N T ( 1 0 )N O TN U L LD E F A U L T' 0 ' , P R I M A R YK E Y ( a i d ) ) ;

Nhp liu bng CSDL ta c:

M (SQL):

m y s q l >I N S E R TI N T Oq u e s t i o n ( q t i t l e , q d a t e ) V A L U E S ( " B a nt h a yq h o n l i n et h en a o? " , " 2 0 0 9 1 0 1 0 " ) ; m y s q l >I N S E R TI N T Oa n s w e r ( q i d , a t i t l e , a c o u n t ) V A L U E S ( " 1 " , " N h i nr a td e p " , 0 ) ; m y s q l >I N S E R TI N T Oa n s w e r ( q i d , a t i t l e , a c o u n t ) V A L U E S ( " 1 " , " N h i nD e p " , 0 ) ; m y s q l >I N S E R TI N T Oa n s w e r ( q i d , a t i t l e , a c o u n t ) V A L U E S ( " 1 " , " N h i nC u n gd u o c " , 0 ) ; m y s q l >I N S E R TI N T Oa n s w e r ( q i d , a t i t l e , a c o u n t ) V A L U E S ( " 1 " , " N h i nq u ax a u " , 0 ) ;

B- Xy dng trang bnh ch n poll.php Kt ni c s d liu:

PHP:

< ? p h p $ c o n n = m y s q l _ c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " )o rd i e ( " c a nn o tc o n n e c td a t a b a s e " ) ; m y s q l _ s e l e c t _ d b ( " p o l l _ e x a m " , $ c o n n ) ; ? >

La chn cu hi c trong c s d liu lit k ra trn website, sau ta li tip tc lit k cc cu tr li ca cu hi bng cch s dng du chn la (radio). Nh v y chng ta s phi chy cng lc 2 cu truy v n lng nhau trong sut qu trnh truy xut.

PHP:

forum.hoclaptrinhweb.com/threads/bai-17-xay-dung-he-thong-binh-chon-bang-php-va-mysql.1272/

2/6

14/12/2013

Bi 17: Xy dng h thng bnh chn bng PHP v MYSQL | Din n hc lp trnh web
< ? p h p $ s q l = " s e l e c t*f r o mq u e s t i o no r d e rb yq i dd e s c " ; $ q u e r y = m y s q l _ q u e r y ( $ s q l ) ; i f ( m y s q l _ n u m _ r o w s ( $ q u e r y )>0 ) { $ r o w = m y s q l _ f e t c h _ a r r a y ( $ q u e r y ) ; $ q i d = $ r o w [ q i d ] ; e c h o" < f o r ma c t i o n = ' p o l l . p h p ? q u e s t i o n i d = $ q i d 'm e t h o d = ' p o s t '> " ; e c h o" < h 2 > $ r o w [ q t i t l e ] < / h 2 > " ; $ s q l 2 = " s e l e c t*f r o ma n s w e rw h e r eq i d = ' $ q i d 'o r d e rb ya i d " ; $ q u e r y 2 = m y s q l _ q u e r y ( $ s q l 2 ) ; i f ( m y s q l _ n u m _ r o w s ( $ q u e r y 2 )>0 ) { w h i l e ( $ r o w 2 = m y s q l _ f e t c h _ a r r a y ( $ q u e r y 2 ) ) { e c h o" < i n p u tt y p e = r a d i on a m e = a n s w e rv a l u e = $ r o w 2 [ a i d ] > $ r o w 2 [ a t i t l e ] < b r/ > " ; } } e c h o" < i n p u tt y p e = ' s u b m i t 'n a m e = ' o k 'v a l u e = ' B i n hC h o n ' > " ; e c h o" < ah r e f = ' r e s u l t . p h p ? q u e s t i o n i d = $ q i d ' > X e mK e tQ u a < / a > " ; e c h o" < / f o r m > " ; } ? >

V mn hnh s xut ra nh hnh bn di

V khi ngi dng nht nt Bnh chn, chng ta s gi li chnh trang x l d liu m ngi dng v a la chn. Vy ta phi s dng lnh isset() kim tra xem ngi dng c nhn nt bnh chn khng, tip n ta ly ra id m ngi dng v a tin hnh chn form bn di. Cui cng ta cp nht d liu bng cch ly s trong c s d liu cng tip cho 1 n v na. V a ngi dng sang trang kt qu. V trong on code ny c lnh header nn chng ta phi t qu trnh x l ny trn form. N u khng s b li d liu khi gi.

PHP:

< ? p h p i f ( i s s e t ( $ _ P O S T [ ' o k ' ] ) ) { $ i d = $ _ P O S T [ ' a n s w e r ' ] ; $ q i d = $ _ G E T [ ' q u e s t i o n i d ' ] ; $ s q l 3 = " u p d a t ea n s w e rs e ta c o u n t = a c o u n t+1w h e r ea i d = ' " . $ i d . " ' " ; m y s q l _ q u e r y ( $ s q l 3 ) ; h e a d e r ( " l o c a t i o n :r e s u l t . p h p ? q u e s t i o n i d = $ q i d " ) ; e x i t ( ) ; } ? >

Vy ton b code ca trang poll.php ny nh sau.

PHP:

forum.hoclaptrinhweb.com/threads/bai-17-xay-dung-he-thong-binh-chon-bang-php-va-mysql.1272/

3/6

14/12/2013

Bi 17: Xy dng h thng bnh chn bng PHP v MYSQL | Din n hc lp trnh web
< ? p h p $ c o n n = m y s q l _ c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " )o rd i e ( " c a nn o tc o n n e c td a t a b a s e " ) ; m y s q l _ s e l e c t _ d b ( " p o l l _ e x a m " , $ c o n n ) ; i f ( i s s e t ( $ _ P O S T [ ' o k ' ] ) ) { $ i d = $ _ P O S T [ ' a n s w e r ' ] ; $ q i d = $ _ G E T [ ' q u e s t i o n i d ' ] ; $ s q l 3 = " u p d a t ea n s w e rs e ta c o u n t = a c o u n t+1w h e r ea i d = ' " . $ i d . " ' " ; m y s q l _ q u e r y ( $ s q l 3 ) ; h e a d e r ( " l o c a t i o n :r e s u l t . p h p ? q u e s t i o n i d = $ q i d " ) ; e x i t ( ) ; } $ s q l = " s e l e c t*f r o mq u e s t i o no r d e rb yq i dd e s c " ; $ q u e r y = m y s q l _ q u e r y ( $ s q l ) ; i f ( m y s q l _ n u m _ r o w s ( $ q u e r y )>0 ) { $ r o w = m y s q l _ f e t c h _ a r r a y ( $ q u e r y ) ; $ q i d = $ r o w [ q i d ] ; e c h o" < f o r ma c t i o n = ' p o l l . p h p ? q u e s t i o n i d = $ q i d 'm e t h o d = ' p o s t '> " ; e c h o" < h 2 > $ r o w [ q t i t l e ] < / h 2 > " ; $ s q l 2 = " s e l e c t*f r o ma n s w e rw h e r eq i d = ' $ q i d 'o r d e rb ya i d " ; $ q u e r y 2 = m y s q l _ q u e r y ( $ s q l 2 ) ; i f ( m y s q l _ n u m _ r o w s ( $ q u e r y 2 )>0 ) { w h i l e ( $ r o w 2 = m y s q l _ f e t c h _ a r r a y ( $ q u e r y 2 ) ) { e c h o" < i n p u tt y p e = r a d i on a m e = a n s w e rv a l u e = $ r o w 2 [ a i d ] > $ r o w 2 [ a t i t l e ] < b r/ > " ; } } e c h o" < i n p u tt y p e = ' s u b m i t 'n a m e = ' o k 'v a l u e = ' B i n hC h o n ' > " ; e c h o" < ah r e f = ' r e s u l t . p h p ? q u e s t i o n i d = $ q i d ' > X e mK e tQ u a < / a > " ; e c h o" < / f o r m > " ; } ? >

C- Xy dng trang k t qu bnh ch n result.php

trang ny, ta s ly gi tr question id ca ngi bnh chn t trang poll.php v tnh ton xem t l phn trm ca cc cu hi y nh th no. u tin, ta ly gi tr t poll.php?questionid=1. v y 1 l gi tr ta s c c t $_GET[&#39;questionid&#39;]. Tip n ta li dng gi tr v a ly c ny lit k thng tin cu hi v tnh ton gi tr. tnh ton gi tr, ta cn bit tng s bnh chn trong ton b cc cu tr li hin nay l bao nhiu. Bng cu lnh SUM ta c th lm c iu .

PHP:

$ s q l 2 = " s e l e c tq i d ,S U M ( a c o u n t )a st o t a lf r o ma n s w e rg r o u pb yq i dh a v i n gq i d = ' " . $ q i d . " ' " ;

Cu lnh ny cho php ta ly ra tng s bnh chn trong c s d liu ca cu hi m ta truy n vo. SUM c acount ta cn phi GROUP(gom nhm) chng ta li theo m cu hi m chng ta cn tm. having l m nh theo sau c ngha tng ng v i where, n thng c s dng theo GROUP. Nh v y ly ra tng s phiu bnh chn ta ch vic thc thi cu truy v n ny, v ly tn ct tm l total.

PHP:

< ? p h p $ s q l 2 = " s e l e c tq i d ,S U M ( a c o u n t )a st o t a lf r o ma n s w e rg r o u pb yq i dh a v i n gq i d = ' " . $ q i d . " ' " ; $ q u e r y 2 = m y s q l _ q u e r y ( $ s q l 2 ) ; $ r o w 2 = m y s q l _ f e t c h _ a r r a y ( $ q u e r y 2 ) ; $ t o t a l = $ r o w 2 [ t o t a l ] ; ? >

k ti, ta li tnh ton s phiu ca tng cu hi trong c s d liu, da vo tng s cu hi ny. V d: Tng s lt bnh chn l 10 cu 1 l 3 cu 2 l 4 cu 3 l 2
forum.hoclaptrinhweb.com/threads/bai-17-xay-dung-he-thong-binh-chon-bang-php-va-mysql.1272/ 4/6

14/12/2013

Bi 17: Xy dng h thng bnh chn bng PHP v MYSQL | Din n hc lp trnh web

cu 4 l 1 Vy suy ra phn trm trn tng s 10 ca 4 cu ny c tnh bng cch ly. s liu ca tng cu chia cho tng s cu hi v nhn cho 100. V d cu 1 l: (3/10)*100 = 30% lm trn kt qu ta s dng hm round(). Gip d liu a v s ng b v r rng nht. Vy code x l ca chng ta nh sau:

PHP:

< ? p h p $ s q l 3 = " s e l e c t*f r o ma n s w e rw h e r eq i d = ' " . $ q i d . " 'o r d e rb ya i d " ; $ q u e r y 3 = m y s q l _ q u e r y ( $ s q l 3 ) ; i f ( m y s q l _ n u m _ r o w s ( $ q u e r y 3 )>0 ) { w h i l e ( $ r o w 3 = m y s q l _ f e t c h _ a r r a y ( $ q u e r y 3 ) ) { $ p e r c e n t = r o u n d ( ( $ r o w 3 [ a c o u n t ] / $ t o t a l ) * 1 0 0 , 2 ) ; e c h o" < h 4s t y l e = ' c o l o r : r e d ;f o n t : 1 2 p xv e r d a n a ;' > $ r o w 3 [ a t i t l e ]:$ r o w 3 [ a c o u n t ]( $ p e r c e n t% ) < / h 4 > " ; } } ? >

Kt qu khi xut ra s c hnh nh sau:

Vy ton b m ngun ca trang result.php ny nh sau:

PHP:

< ? p h p $ c o n n = m y s q l _ c o n n e c t ( " l o c a l h o s t " , " r o o t " , " r o o t " )o rd i e ( " c a nn o tc o n n e c td a t a b a s e " ) ; m y s q l _ s e l e c t _ d b ( " p o l l _ e x a m " , $ c o n n ) ; i f ( i s s e t ( $ _ G E T [ ' q u e s t i o n i d ' ] ) ) { $ q i d = $ _ G E T [ ' q u e s t i o n i d ' ] ; $ s q l = " s e l e c t*f r o mq u e s t i o nw h e r eq i d = ' " . $ q i d . " ' " ; $ q u e r y = m y s q l _ q u e r y ( $ s q l ) ; $ r o w = m y s q l _ f e t c h _ a r r a y ( $ q u e r y ) ; e c h o" < h 2 > $ r o w [ q t i t l e ] < / h 2 > " ; $ s q l 2 = " s e l e c tq i d ,S U M ( a c o u n t )a st o t a lf r o ma n s w e rg r o u pb yq i dh a v i n gq i d = ' " . $ q i d . " ' " ; $ q u e r y 2 = m y s q l _ q u e r y ( $ s q l 2 ) ; $ r o w 2 = m y s q l _ f e t c h _ a r r a y ( $ q u e r y 2 ) ; $ t o t a l = $ r o w 2 [ t o t a l ] ; $ s q l 3 = " s e l e c t*f r o ma n s w e rw h e r eq i d = ' " . $ q i d . " 'o r d e rb ya i d " ; $ q u e r y 3 = m y s q l _ q u e r y ( $ s q l 3 ) ; i f ( m y s q l _ n u m _ r o w s ( $ q u e r y 3 )>0 ) { w h i l e ( $ r o w 3 = m y s q l _ f e t c h _ a r r a y ( $ q u e r y 3 ) ) { $ p e r c e n t = r o u n d ( ( $ r o w 3 [ a c o u n t ] / $ t o t a l ) * 1 0 0 , 2 ) ; e c h o" < h 4s t y l e = ' c o l o r : r e d ;f o n t : 1 2 p xv e r d a n a ;' > $ r o w 3 [ a t i t l e ]:$ r o w 3 [ a c o u n t ]( $ p e r c e n t% ) < / h 4 > " ; } } } ? >

Download ton b m ngun ca bi ny ti y . (Bi Qu c Huy ) Ngun :www.qhonline.info Cc bi vit lin quan
Thc mc v code qun l video v bi vit.Xin gip ! hc thit k web u Yii Framework
25/11/2013 22/11/2013 04/12/2013

n Pin chun Quc T sng nh n xe hi... n laze ri ti my


19/11/2013

Gi mail SMTP - PHP n gin nht - Send Mail using SMTP and PHP Ajax file upload - upload file t ng bng PHP s dng ajax X l XML trong PHP5 mt cch nhanh chng v hiu qu
28/10/2013

28/10/2013

28/10/2013

forum.hoclaptrinhweb.com/threads/bai-17-xay-dung-he-thong-binh-chon-bang-php-va-mysql.1272/

5/6

14/12/2013

Bi 17: Xy dng h thng bnh chn bng PHP v MYSQL | Din n hc lp trnh web
Lc sn phm theo iu kin (PHP) ???
10/10/2013 24/08/2013 12/07/2013

Hng dn xy dng m hnh MVC trong PHP c v d km theo

Bi 7 Xy dng website thng mi in t - Xy dng ng dng web

---> Tin v o ngy m ai < --myhanh, 21/6/13 Report #1 Thch Tr li

Phng ch

Kch thc

G i tr l i G i tr l i

T i l n fi l e nh km T i l n fi l e nh km

Thm ty ch n... Thm ty ch n...

Chia s trang ny
0 Trang ch Din n Ngnh cng ngh phn mm Lp trnh web PHP

Ti da nam laptop xut khu - Gim 56% eva123.vn Ti da nam laptop Polo xut khu Chu u.Thit k tr trung, thi trang. Ch 850,000 Ting Vit Din n s dng XenForo 2011 XenForo Ltd. Din n c xy dng v pht trin bi thnh vin Hoclaptrinhweb.com. Chng ti khng chu trch nhim v ni dung ng ti do ngi dng a ln. Google

Ti xch n da tht cao cp PK189 -51% eva123.vn Kiu dng p, thit k tinh t. Cht liu cao cp. Phong cch nng ng. Ch 1,800,000

Lin h Trang ch Ln u trang Quy nh v Ni quy

forum.hoclaptrinhweb.com/threads/bai-17-xay-dung-he-thong-binh-chon-bang-php-va-mysql.1272/

6/6

You might also like