php mysql 投票系统开发实例教程(1/4)

 更新时间:2016年11月25日 15:55  点击:1440

我们先来分析流程

一,数据库教程,

二,数据库文件dbconn.php

三,vote.php投票页面

四,投票功能页面vote_add.php

五,查看所有投票数据viewpoll.php

现在我们来看看数据库结构

 代码如下 复制代码

drop database if exists vote;
create database vote;
use vote;

CREATE TABLE  title  (                                                                                                                                                                                                                                                                
           id  int(6) NOT NULL auto_increment,
    username  varchar(20) NOT NULL,
    email  varchar(50) NOT NULL,
           title  varchar(250) NOT NULL default '',                                                                                                                                                                                                                                           
           types  tinyint(2) NOT NULL default '1',
    choice text,
           times  datetime NOT NULL default '0000-00-00 00:00:00',                                                                                                                                                                                                                            
          primary KEY ( id )     
        );

CREATE TABLE  vote  (                                                                                                                                                                                                                                                
           id  int(6) NOT NULL auto_increment,                                                                                                                                                                                                                         
           titleid  int(6) NOT NULL default '0',                                                                                                                                                                                                                           
           info  text NOT NULL,                                                                                                                                                                                                                                              
           vcount  int(4) NOT NULL default '0',                                                                                                                                                                                                                        
          primary KEY ( id )                                                                                                                                                                                                                                             
        );
create table email (
    id int(6) not null,
    email varchar(50) not null,
    primary key ( id, email)
 );

数据库连接文件

 代码如下 复制代码

<?php
$conn=mysql_connect("localhost","phpdb","phpdb")
        or die("不能连接数据库服务器: ".mysql_error());
mysql_select_db("vote",$conn) or die ("不能选择数据库: ".mysql_error());

?>

 

function outPege($ps教程,$page)
{
// $ps 累计信息数 $page 当前page数 $max 列表的最大数 $min 列表的最小值
$max      = ($page >= 5)? $page+5:10;
if($max > $ps)$max =$ps;
$min      =($page-5);
if($min<1) $min =1;
if($page>1)$pagelist = "<a href="?page=1">首页</a>";
for($i=$min;$i<=$max;$i++){
  $pagelist.= ($i!=$page)? "<a href="?page={$i}">{$i}</a>":"<a href="#">{$page}</a>";
}
$pagelist.= ($page>=$ps)?'':"<a href="?page={$ps}">尾页</a>";
return $pagelist;
}

//方法二

/**
* 显示分页函数
* records总记录数,currentpage当前页数,rows每页记录数,listpage页号列表长度。
*/
function showpage ($records,$currentpage,$rows=20,$listpages=7) {
if($records<1)return '';
if($rows<1)$rows=20;
if($listpages<3)$listpages=7;
$action=$_SERVER['QUERY_STRING']; //得到地址栏中?后的内容
if($action){ //将page=...的内容去掉
$action=preg_replace("/&page[^&]*/","",$action);
$action=preg_replace("/page[^&]*&*/","",$action);
}
if($action)$action.='&';
$maxpage=ceil($records/$rows); //进一法取整得到最大页数。
$middlepage=floor($listpages/2); //舍去法取整得到要显示的页数的一半。
if($currentpage<1||$currentpage>$maxpage)$currentpage=1;
$startpage=$currentpage-$middlepage;
if($maxpage-$currentpage<=$middlepage)$startpage=$maxpage-$listpages;
if($startpage<2)$startpage=2; //开始页计算完成
$endpage=$startpage+$listpages;
if($endpage>$maxpage)$endpage=$maxpage; //结束页计算完成
if($currentpage!=1){
$pagestr="<a href='?{$action}page=1'><span>1</span></a> ";
}else{
$pagestr="<span>1</span> ";
}

json_encode和json_decode的效率并没有比serialize和unserialize的效率高,在反序列化的时候性能相差两倍左右,PHP 5.3执行效率比PHP 5.2略有提升。

 代码如下 复制代码


<?php教程
$target = array (
'name' => '全能头盔',
'quality' => 'Blue',
'ti_id' => 21302,
'is_bind' => 1,
'demand_conditions' =>
array (
'HeroLevel' => 1,
),
'quality_attr_sign' =>
array (
'HeroStrength' => 8,
'HeroAgility' => 8,
'HeroIntelligence' => 8,
),
);
$json = json_encode($target);
$seri = serialize($target);
echo "json : " . strlen($json) . " ";
echo "serialize : " . strlen($seri) . " ";
$stime = microtime(true);
for ($i = 0; $i < 10000; $i ++)
{
json_encode($target);
}
$etime = microtime(true);
echo "json_encode : " . ($etime - $stime) . " ";
//----------------------------------
$stime = microtime(true);
for ($i = 0; $i < 10000; $i ++)
{
json_decode($json);
}
$etime = microtime(true);
echo "json_decode : " . ($etime - $stime) . " ";
//----------------------------------
$stime = microtime(true);
for ($i = 0; $i < 10000; $i ++)
{
serialize($target);
}
$etime = microtime(true);
echo "serialize : " . ($etime - $stime) . " ";
//----------------------------------
$stime = microtime(true);
for ($i = 0; $i < 10000; $i ++)
{
unserialize($seri);
}
$etime = microtime(true);
echo "unserialize : " . ($etime - $stime) . " ";
echo 'DONE.';
?>

 //方法一

 代码如下 复制代码
 $str = '<a href="http://www.111cn.net" target="_blank" name="doc3_p"><img src="" onload="setImgSize(this,170,170);"></a>';
    preg_match_all ('|^<a href="(.*)".*|U',$str,$out, PREG_PATTERN_ORDER);
    print_r($out);


 
 //方法二
 

 代码如下 复制代码
 preg_match_all('/href=['"]+(.*)['"]+/',$str,$matches);
 var_dump($matches[1]);


 
 
 //方法三

 代码如下 复制代码
 //(?<=<as*)href=[^ '">]+


 
 //方法四

 代码如下 复制代码
 preg_match("/<as*href="(.*?)"[^>]*>.*?</a>/is", $str, $aMatch);
 print_r($aMatch[1]);


 
 //方法五

 代码如下 复制代码
 preg_match_all('/href=('|"|s)*([^'">s]+)/i',$str,$match);
 print_r($match);
 
 preg_match_all('/src=('|"|s)*([^'">s]+)/i',$str,$match);
 print_r($match);


 /*
 上面这正则得到url的地址都是用了php正则表达试来实现的,只是方法有一点不同了。

/*
字符串A:"1,3,4,5,6,7,8,9,10,11,12,14,15,17,20,22,123,457",
例如我想知道这个字符串里面是否含有"2",这时候"12","20","22"等
*/
//一

 代码如下 复制代码
if(in_array('2',explode(',',$str))

//二

 代码如下 复制代码
$str= '1,3,4,5,6,7,8,9,10,11,12,14,15,17,20,22,123,457';
if(strpos(',' . $str . ',', ',2,') !== false)
{
 //TODO
}

//三

 代码如下 复制代码
echo preg_match('/(?<=^|,)2(?=,|$)/','1,3,4,5,6,7,8,9,10,11,12,14,15,17,20,22,123,457');

 

[!--infotagslink--]

相关文章

  • python实现学生通讯录管理系统

    这篇文章主要为大家详细介绍了python实现学生通讯录管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-25
  • vscode搭建STM32开发环境的详细过程

    这篇文章主要介绍了vscode搭建STM32开发环境的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-05-02
  • BootStrap栅格系统、表单样式与按钮样式源码解析

    这篇文章主要为大家详细解析了BootStrap栅格系统、表单样式与按钮样式源码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-01-23
  • 详解为什么现代系统需要一个新的编程模型

    如今高要求的分布式系统的建造者遇到了不能完全由传统的面向对象编程(OOP)模型解决的挑战,但这可以从Actor模型中获益。...2021-05-20
  • 安卓开发之Intent传递Object与List教程

    下面我们一起来看一篇关于 安卓开发之Intent传递Object与List的例子,希望这个例子能够为各位同学带来帮助。 Intent 不仅可以传单个的值,也可以传对象与数据集合...2016-09-20
  • 护卫神 主机管理系统使用说明(MSSQL管理)

    护卫神·主机管理系统该版本支持在Windows Server 200320082012,含32位和64位,直接开设配置WEB站、FTP站,以及SQL Server和MySQL,是您开设和管理虚拟主机的绝好帮手。但是对于新用户可能在使用上有一些困难,因此请仔细阅读如下说明文档...2016-01-27
  • php微信公众账号开发之五个坑(二)

    这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
  • 如何设计一个安全的API接口详解

    在日常开发中,总会接触到各种接口,前后端数据传输接口,第三方业务平台接口,下面这篇文章主要给大家介绍了关于如何设计一个安全的API接口的相关资料,需要的朋友可以参考下...2021-08-12
  • 利用C#修改Windows操作系统时间

    这篇文章主要介绍了利用C#修改Windows操作系统时间,帮助大家更好的利用c#操作系统,感兴趣的朋友可以了解下...2020-12-08
  • 微信开发生成带参数的二维码的讲解

    在微信公众号平台开发者那里,在“账号管理”那里,有一项功能是“生成带参数的二维码”,通过这儿生成的二维码,只要通过微信扫一扫之后,会把事件自动推送到微...2016-05-19
  • vivo OriginOS新系统如何更新 originos系统更新方法

    vivo新系统更新的步骤是什么?如何更新到vivo的最新系统?vivo的最新系统太亮眼了,不少vivo的用户都在跃跃欲试想体验一下最新的系统。vivo新系统虽然做出来了不过我们想体验的话还是要等待一段时间。到时大家通过下面的方法就可以使用到新系统了...2020-12-08
  • C#实现影院售票系统

    这篇文章主要为大家详细介绍了C#实现影院售票系统,解析了售票系统的难点,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 分享我对JS插件开发的一些感想和心得

    这篇文章主要给大家分享我对JS插件开发的一些感想和心得的相关资料,需要的朋友可以参考下...2016-02-09
  • Chrome插件开发系列一:弹窗终结者开发实战

    从这一节开始,我们将从零开始打造我们的chrome插件工具库,第一节我们将讲一下插件开发的基础知识并构建一个简单但却很实用的插件,在构建之前,我们先简单的了解一下插件以及插件开发的基础知识...2020-10-03
  • ColorOS7.2好不好用 ColorOS7.2系统升级体验

    ColorOS7.2系统怎么样?好不好用?值不值得升级?下面小编带来ColorOS7.2系统升级体验...2020-06-29
  • C#多线程编程中的锁系统(四):自旋锁

    这篇文章主要介绍了C#多线程编程中的锁系统(四):自旋锁,本文讲解了基础知识、自旋锁示例、SpinLock等内容,需要的朋友可以参考下...2020-06-25
  • Cocos2d-x UI开发之CCControlColourPicker控件类使用实例

    这篇文章主要介绍了Cocos2d-x UI开发之CCControlColourPicker控件类使用实例,本文代码中包含大量注释来讲解CCControlColourPicker控件类的使用,需要的朋友可以参考下...2020-04-25
  • Unity实现换装系统

    这篇文章主要为大家详细介绍了Unity实现换装系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-11
  • php需登录的文件上传管理系统

    本文给大家介绍一个不错的需要登录的php 文件上传管理系统,功能简单有需要了解的同学可参考。 代码如下<&#63;php$admin_pw="admin";//管理密码$uploaddir="upload";//上传目录session_start();if($_GET['action']=="g...2015-10-30
  • 详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现

    这篇文章主要介绍了详解微信开发中snsapi_base和snsapi_userinfo及静默授权的实现的相关资料,需要的朋友可以参考下...2017-03-13