抽奖程序

今天在外面买裤子,看见超市里面搞抽奖。好多人在那里啊,回寝室第一时间就做了这个抽奖的程序。呵呵,纪念下下

简单了点,这个是注册界面

抽奖程序_第1张图片

简单的注册下,留下点个人信息

数据库的表设计如下

抽奖程序_第2张图片

抽奖程序_第3张图片

 

其实可以做到后台添加奖牌的,但嫌麻烦就没搞了。这些都是验证提示窗口

抽奖程序_第4张图片

抽奖程序_第5张图片

抽奖程序_第6张图片

最后的就是现实获奖人显示的界面了

抽奖程序_第7张图片

简简单单。无聊的时编程也是个消遣

如下是代码

  1.     $DB_HOST    = "localhost";    //数据库主机位置
  2.     $DB_LOGIN   = "root";     //数据库的使用账号
  3.     $DB_PASSWORD    = "123";      //数据库的使用密码
  4.     $DB_NAME    = "elliot";         //数据库名称
  5.     $conn = mysql_connect($DB_HOST$DB_LOGIN$DB_PASSWORD);
  6.     mysql_select_db($DB_NAME);  
  7.     mysql_query("SET NAMES 'gb2312'");
  8. ?>

这是经典的PHP链接MYSQL代码。

这个是登录界面的代码,简单的很

  1. <script>
  2.         
  3.     function check()
  4.     {
  5.         if(document.form1.m_name.value == "")
  6.         {
  7.             alert("未输入姓名");
  8.             return false;
  9.         }
  10.         if(document.form1.m_sid.value == "")
  11.         {
  12.             alert("未输入身份证号码");
  13.             return false;
  14.         }
  15.         if(document.form1.m_email.value == "")
  16.         {
  17.             alert("未输入 E-mail");
  18.             return false;
  19.         }
  20.         if(document.form1.m_phone.value == "")
  21.         {
  22.             alert("未输入联系电话");
  23.             return false;
  24.         }
  25.         if(document.form1.m_addr.value == "")
  26.         {
  27.             alert("未输入奖品邮寄地址");
  28.             return false;
  29.         }
  30.         document.form1.submit();
  31.     }
  32.         
  33. script>
  34. <form name="form1" method="post" action="logon_process.php">
  35.   <table width="750" border="1">
  36.     <tr> 
  37.       <td colspan="4" align="center">抽奖人信息填写td>
  38.     tr>
  39.     <tr> 
  40.       <td width="101">姓名td>
  41.       <td width="287"> 
  42.         <input type="text" name="m_name">
  43.       td>
  44.       <td width="131">身份证号码td>
  45.       <td width="203"> 
  46.         <input type="text" name="m_sid">
  47.       td>
  48.     tr>
  49.     <tr> 
  50.       <td width="101">E-mailtd>
  51.       <td width="287"> 
  52.         <input type="text" name="m_email">
  53.       td>
  54.       <td width="131">联系电话td>
  55.       <td width="203"> 
  56.         <input type="text" name="m_phone">
  57.       td>
  58.     tr>
  59.     <tr> 
  60.       <td width="131">奖品邮寄地址td>
  61.       <td colspan="3"> 
  62.         <input type="text" name="m_addr" size="40">
  63.       td>
  64.     tr>
  65.     <tr> 
  66.       <td colspan="4" align="center"> 
  67.           <input type="submit" name="Submit" value="清除重填">
  68.           <input type="button" name="Submit2" value="送出" onClick="check();">
  69.           <br>
  70.           <font size="3" color="#FF0000">
  71.             (请留下您的联系信息, 务必填写正确, 让我们能联系到您。) 
  72.           font>
  73.       td>
  74.     tr>
  75.   table>
  76. form>

 

关键在这里登录处理程序

  1.     include("db_conn.php");
  2.     include("sidcheck.php"); // 导入身份证号码检查机制
  3.     // 查询数据库中是否有此用户 BEGIN
  4.     $SQLStr = "SELECT * FROM memberprize WHERE m_sid = '$m_sid'";
  5.     $res = db_query($SQLStr);
  6.     // 查询数据库中是否有此用户 END
  7.     
  8.     if (db_num_rows($res)>0) // 若有此用户
  9.     {
  10.         $message = "您已经登记过了..";
  11.     }
  12.     else // 若无此用户
  13.     {
  14.         // 将用户信息写进数据库中 BEGIN
  15.         $SQLStr = "INSERT INTO memberprize (m_id, m_name, m_sid, m_email, m_phone, m_addr, p_id) ";
  16.         $SQLStr .= "VALUES('', '$m_name', '$m_sid', '$m_email', '$m_phone', '$m_addr', '0')";
  17.         db_query($SQLStr);
  18.         echo $SQLStr;
  19.         $message = "谢谢您的登记, 请期待抽奖日的结果";
  20.         // 将用户信息写进数据库中 END
  21.     }
  22. ?>

这里面特别是身份证检查的程序很好玩,在网上看的,不错,以前都是A123456789这些。这个处理程序还不错,呵呵。

  1. class CIDMaker  //检查身份证号码
  2. {
  3.     var $id
  4.     var $err
  5.     var $idx = array(1,1,1,1,1,1,1,1,3,1,1,2,2,2,3,2,2,2,2,2,2,2,3,3,3,3); 
  6.     var $idy = array(0,1,2,3,4,5,6,7,4,8,9,0,1,2,5,3,4,5,6,7,8,9,0,1,2,3); 
  7.     function check($id_no
  8.     {
  9.         $id_no = ucfirst($id_no);               //首字母转大写
  10.         if(ereg("^[A-Z][0-9]{9}$"$id_no))
  11.         {
  12.             for($i = 0;$i < 10; $i++)
  13.                 $ch[$i] = substr($id_no,$i,1);
  14.             $i = 0; 
  15.                         for ($char = "A"$char != $ch[0]; $char++) 
  16.                 $i++;                   //字母转数字
  17.                         $id = $this->idx[$i]+$this->idy[$i]*9+$ch[1]*8+$ch[2]*7+$ch[3]*6+$ch[4]*5+$ch[5]*4+$ch[6]*3+$ch[7]*2+$ch[8]*1+$ch[9]*1; 
  18.                         $id = (($id % 10) == 0) ? TRUE : FALSE; 
  19.                         return $id
  20.                 } 
  21.         else
  22.             return 0;
  23.         } 
  24. }
  25.     $cidmaker = new CIDMaker;
  26.     $result = $cidmaker->check($m_sid);
  27.     if($result == FALSE)
  28.     {
  29.         echo "";
  30.         echo "";
  31.         break;
  32.     }
  33. ?>

最最关键的是抽奖的程序了。
  1.     include("db_conn.php");
  2.     include("db_func.php");
  3.     // 计算共有几个用户登记 BEGIN
  4.     $SQLStr = "SELECT * FROM memberprize";
  5.     $res = db_query($SQLStr);
  6.     $count = db_num_rows($res);
  7.     // 计算共有几个用户登记 END
  8.     // 将使抽奖会员表中的 m_id (抽奖会员编号) 
  9.     // 依次置入数组中 BEGIN
  10.     for($i=0;$i<$count;$i++)
  11.     {
  12.         $row = db_fetch_array($res);
  13.         $array[] = $row[m_id];
  14.     }
  15.     // 将使抽奖会员表中的 m_id (抽奖会员编号) 
  16.     // 依次置入数组中 END
  17.     shuffle($array); // 随机排列数组中的值
  18.     
  19.     // 取出奖项共分几等级 BEGIN
  20.     $SQLStr = "SELECT * FROM prize";
  21.     $res = db_query($SQLStr);
  22.     $num = db_num_rows($res);
  23.     // 取出奖项共分几等级 END
  24.     $check = 0;
  25.     // 取出得奖名额的会员, 并依次指定奖项 BEGIN
  26.     for ($n=0;$n<$num;$n++)
  27.     {
  28.       $row = db_fetch_array($res);
  29.       for($j=0;$j<$row['p_num'];$j++)
  30.       {
  31.         if ($array[$j] != ''// 奖品发完就GAMEOVER
  32.         {
  33.           $SQLStr = "UPDATE memberprize SET p_id = '$row[p_id]' WHERE m_id = '$array[$check]'";
  34.           db_query($SQLStr);
  35.           $check++;
  36.         }
  37.       }
  38.     }
  39.     // 取出得奖名额的会员, 并依次指定奖项 END
  40. ?>

RAR文件貌似不能传~那算了

 

你可能感兴趣的:(程序设计,数据库,query,mysql,include,email,login)