分享
 
 
 

一个简单的PHP投票系统

王朝php·作者佚名  2006-12-16
窄屏简体版  字體: |||超大  

建立2个表,一个用来显示当前主题,一个存放历史结果。

当前主题表结构:选项(包括主题),票数

历史结果表结构:id,主题名,关点,投票开始时间,投票结束时间

管理页面:

功能:1、更新投票主题 2、查看历史结果 3、停止使用投票系统

一、建表

CREATE Table toupiaoall(

id int(4) NOT NULL auto_increment,

theme char(20) NOT NULL,

idea char(100) NOT NULL,

begin char(20) NOT NULL,

end char(20) NOT NULL,

PRIMARY KEY (id)

);

CREATE TABLE toupiaocur(

xx varchar(20) NOT NULL,

ps int(6) not null,

date char(10) not null

);

说明:在表toupiaocur中,第一个记录存放主题和建立时间,在进行投票时不改动。从第二个记录开始记录各选项内容和票数。

链接程序:connect.inc.php3

<?

$show="yes";

$xuanxiang=array("","one","two","thr","fou","fiv");

$current="toupiaocur";

$alldata="toupiaoall";

@mysql_connect("localhost","","") or die ("sorry,unable to connect to database");

@mysql_select_db("db") or die ("unable to select database");

?>

二、显示页面

<?

//页面

include("connect.inc.php3");

$query_tp="select * from $current";

$result_tp=mysql_query($query_tp);

$row_tp=@mysql_fetch_array($result_tp);

$rows_tp=@mysql_num_rows($result_tp);

if ($rows_tp) {

?>

<hr size="1">

<script language="JavaScript">

<!--

function newin() {

var newwin=window.open("","homeWin","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,width=240,height=180");

return false;

}

//-->

</script>

<form name="fromtp" action="toupiao_pre.php" method="post" onsubmit="newin('')" target=homeWin>

<center>【网上调查】</center><br>

<?

echo "<font color=#cc3300>".$row_tp[0]."</font><br>"; //显示主题

//显示每个选项

for ($t=1;$t<$rows_tp;$t++){//从1开始是为了不选主题,原因嘛。。想想表的结构吧

$seek=mysql_data_seek($result_tp,$t);

$list_tp=mysql_fetch_row($result_tp);

?>

<input type="radio" name="piaosu" value="<? echo $list_tp[0]."\"";if ($t==1) echo "checked"; ?> ><? echo $list_tp[0]; ?><br>

<?

}

?>

<div align=center><br><input type="submit" name="Submittp" value="投票/查看" style="background-color: rgb(235,235,235)"></div>

</form>

<?

}

?>

三、管理页面

<?

include("connect.inc.php3");

//功能:1、更新投票主题(同时将上期投票结果放到历史中) 2、查看历史结果 3、修改历史结果

?>

<form name="form1" action="<? echo $PHP_SELF; ?>" method="get" >

<font color=#ff9900><center>更新主题:</font><select name="select">

<option selected>选项数目</option>

<option value="2">2</option>

<option value="3">3</option>

<option value="4">4</option>

<option value="5">5</option>

</select>

<input type="submit" name="Submit_tp" value="确定">

<?

echo "<a href=\"$PHP_SELF?vhistory=yes\"><font color=#ff9900>查看历史记录</font><a>";

echo "<a href=\"$PHP_SELF?stop=yes\"><font color=#ff9900>停止使用投票系统</font></a>";

echo "<a href=\"admin.php3\"><font color=#ff9900>文章管理</font></a>";

echo "</center></form> <hr size=\"1\" color=\"#ff9900\">";

if ($Submit_tp) {

?>

<SCRIPT language=JavaScript>

<!--

var submitcount=0;

function check_com(){

if(document.form_tp.theme.value.length ==0){

submitcount--;

alert("主题没有填写!\nYou must supply a subject.");

return false;

}

<?

for ($t=1;$t<=$select;$t++) {

?>

if(document.form_tp.<? echo $xuanxiang[$t]; ?>.value.length ==0){

submitcount--;

alert("选项没有填写完整\nYou must supply a option.");

return false;

}

<?

}

?>

}

//-->

</SCRIPT>

<form name="form_tp" onsubmit="return check_com()" action="<? echo $PHP_SELF; ?>" method="post" >

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr>

<td width="23%" bgcolor="#f5f5f5">

<div align="center">主 题:</div>

</td>

<td width="77%" bgcolor="#f5f5f5">

<input type="text" name="theme"><input type="hidden" name="select2" value="<? echo $select; ?>">

</td>

</tr>

<tr>

<td width="23%">

<div align="center">选 项:</div>

</td>

<td width="77%">

<?

for ($sm=1;$sm<=$select;$sm++) {

echo "$sm<input type=\"text\" name=\"".$xuanxiang[$sm]."\" size=\"10\">";

}?>

</td>

</tr>

<tr>

<td colspan="2" bgcolor="#f5f5f5">

<div align="center">

<input type="submit" onSubmit="return check_com()" name="Submit_new" value="确定">

</div>

</td>

</tr>

</table>

</form>

<?

}

if ($Submit_new)

{//1

||||||//从CURRENT表中读出数据放到历史结果表中

$query="select * from $current";

$result=mysql_query($query);

$row_num=mysql_num_rows($result);

$rows=mysql_fetch_array($result);

if ($rows!=0){//2

for ($i=1;$i<$row_num;$i++)

{//3

$seek=mysql_data_seek($result,$i);

$row=mysql_fetch_row($result);

$jieguo=$jieguo.$row[0]."&".$row[1]."\n";

}//4

$date=date("Y-m-d");

$query_inse="insert into $alldata (theme,idea,begin,end) values('$rows[0]','$jieguo','$rows[2]','$date')";

$insert=mysql_query($query_inse);

//5

//删除current中原有数据

if ($insert) mysql_query("delete from $current");

}

//加入新数据

$begin=date("Y-m-d");

$query_new_theme="insert into $current (xx,date) values('$theme','$begin')";

$new_theme=mysql_query($query_new_theme);

if ($new_theme) echo "主题更改成功!<br>";

for ($n=1;$n<=$select2;$n++) {//8

$query_new_xx="insert into $current (xx) values(\"${$xuanxiang[$n]}\")";

$new_xx=mysql_query($query_new_xx);

if ($new_xx)

echo "选项<font color=red>${$xuanxiang[$n]}</font>添加成功!<br>";else echo "选项<font color=red>${$xuanxiang[$n]}</font>添加失败!<br>";

} //9

echo "<center>3秒后返回</center><meta http-equiv=\"refresh\" content=\"3;url=$PHP_SELF\">";

} //10

//显示历史结果

if (isset($vhistory) && $vhistory=="yes") {

$query="select * from $alldata order by iddesc";

$result=mysql_query($query);

while($rows=mysql_fetch_array($result)) {

$idea=explode("\n",$rows[idea]);

$all=0;

for ($j=0;$j<count($idea)-1;$j++) {

$allidea=explode("&",$idea[$j]);

$all=$all+$allidea[1];

}

?>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

<tr bgcolor="#EAEAEA">

<td height="20"><? echo "【主题】".$rows[theme]."【开始时间】".$rows[begin]."【结束时间】".$rows[end]." [共".$all."人参加投票]<a href=\"$PHP_SELF?del=yes&id=$rows[id]\"><font color=red>[删除]</font></a>"; ?></td>

</tr>

<tr>

<td>

<?

for ($j=0;$j<count($idea)-1;$j++) {

$list_idea=explode("&",$idea[$j]);

if ($all!=0) $percent=round($list_idea[1]/$all*10000)/100; else $percert=0;

echo "<font color=#cc3300>".$list_idea[0].":</font>".$list_idea[1]."人 (".$percent."%)";

}

?> </td>

</tr>

</table>

<br><br>

<?

}

}

if (isset($del) && $del=="yes") {

$query_del="delete from $alldata where id=$id";

$result_del=mysql_query($query_del);

if ($result_del) {

echo "<center>删除成功! 1秒后返回!</center>";

echo "<meta http-equiv=\"refresh\" content=\"1;url=$PHP_SELF?vhistory=yes\">";

}

}

//停止投票

if (isset($stop) && $stop=="yes"){

//current to alldata

$query="select * from $current";

$result=mysql_query($query);

$row_num=mysql_num_rows($result);

$rows=mysql_fetch_array($result);

if ($rows!=0){

for ($i=1;$i<$row_num;$i++)

{

$seek=mysql_data_seek($result,$i);

$row=mysql_fetch_row($result);

$jieguo=$jieguo.$row[0]."&".$row[1]."\n";

}

$date=date("Y-m-d");

$query_inse="insert into $alldata (theme,idea,begin,end) values('$rows[0]','$jieguo','$rows[2]','$date')";

$insert=mysql_query($query_inse);

}

//del

$query_stop="delete from $current";

$result_stop=mysql_query($query_stop);

if ($result_stop) echo "<center>网上调查已停止!</center>";else echo "<center>停止网上调查失败!</center>";

}

?>

四、处理页面(计数页面)

<?

//显示页面

include("connect.inc.php3");

$query="update $current set ps=ps+1 where binary xx like \"$piaosu\""; //*选中的票数加1 ,binary是为了精确匹配

$update=mysql_query($query);

$query_tp="select * from $current";

$result_tp=mysql_query($query_tp);

$result_all=mysql_fetch_array($result_tp);

$result_tp_num=mysql_num_rows($result_tp);

echo "<title>$result_all[0]</title>";

for ($i=1;$i<$result_tp_num;$i++) {

$seek=mysql_data_seek($result_tp,$i);

$row=mysql_fetch_row($result_tp);

$ps[$i]=$row[1];//*把票数放到数组ZHUTI中

$zhuti[$i]=$row[0];//*把选项放到数组ZHUTI中

$piaosuall=$piaosuall+$ps[$i];//*总票数

}

echo "<font color=#cc3300>".$result_all[0]."</font>(共".$piaosuall."人参加投票)<br><br>"; //*显示主题

for ($k=1;$k<$result_tp_num;$k++) {

$percent=round($ps[$k]/$piaosuall*10000)/100;//*计算每个选项所占的百分比

echo $zhuti[$k].":".$ps[$k]."人 (".$percent."%)<br>";//*显示每个选项

}

?>

<p align="center">

<a href=javascript:window.close()><u>关闭</u></a></p>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有