编程指南_今晚7点,译者编程入门指南抽奖!
各位关注“简言”的同学们好、老师们!
我的新书《译者编程入门指南》出版啦!感谢大家一直以来的支持和陪伴,我每次发完文章后都会得到大家的点赞、转发、留言甚至打赏,我感到非常荣幸!
为了回馈大家的厚爱,我准备通过“简言”和LingualJob做一次抽奖活动,拿出8本书来送给获奖的盆友。
为什么是8本呢?我本来想送10本的,结果发现我买来送给朋友的书多发出去两本!!
没办法,下次抽奖再多加一些吧,8也挺吉利的
首先,说一下这次抽奖的形式。
我老早就像让大家猜猜我女儿团团出生时的身高了,但是觉得让大家直接在留言区评论很麻烦,而且你留了言也不知道自己有没有猜中。
所以,我准备做一个小网页,让大家直接在网页里猜,每个人可以猜两次,猜中了就立马公开,这样后面的人才知道自己还有没有机会。
这个网页怎么做呢?(不想看过程的可以直接点到最后查看抽奖活动细节~)
第一步:做一个抽奖用的表单
对应的代码如下:
<form role="form"> <div class="form-group"> <label >团团生下来有多高呢?label> <input type="text" class="form-control" name="height" placeholder="请输入一个整数"> <p class="help-block">每个用户只有两次机会哦~p> div> <button type="submit" class="btn btn-default">猜一猜button> form>
第二步:生成用户的抽奖记录
当用户进入到这个页面时先查看该用户是否已经抽过奖,以及获奖状态,如果没有抽过奖,就让对方点击“开始抽奖”。
为了实现这个目的,需要先有一个数据表:
这个表有5个字段,分别是:
luckyid:记录全部的抽奖记录
eventid:每次抽奖活动都会对应一个唯一的id
userid:每个抽奖用户的唯一id
number:剩余抽奖次数,初始值是2
status:获奖状态,默认是0,一旦猜对了就会变成1
第三步:实现抽奖功能
$sql_check = "SELECT * FROM lucky WHERE userid = '$user_id'"; $check_result = mysqli_query($conn,$sql_check); $rowcount=mysqli_num_rows($check_result); if($rowcount == 0) { echo "
";
echo " "; echo " × ";
echo " ";
echo "
"
"
;
echo " 感谢您关注《译者编程入门指南》和可爱的团团!
点击开始抽奖吧,您将有两次抽奖机会哟!";echo " ";
echo '开始抽奖!';
echo "
"; }
效果如下:
当用户点击“开始抽奖”后就会有好几种情况:
没有抽奖
开始抽奖了,但是很犹豫一次都没有提交
抽了一次,没有抽中
抽了一次,抽中了
抽了两次,没有抽中
所以还要分类讨论情况,代码如下:
<?php $form = '
团团生下来有多高呢?
每个用户只有两次机会哦~
猜一猜 '; $notice_first_part = "
×
";
$notice_second_part =
'
开始抽奖!
'; $notice_third_part = '
';
$sql_check = "SELECT * FROM lucky WHERE userid = '$user_id'";
$check_result = mysqli_query($conn,$sql_check);
$rowcount=mysqli_num_rows($check_result);
if($rowcount == 0)
{
//当数据表中没有记录时表明用户还没有开始抽奖
echo $notice_first_part;
echo " 感谢您关注《译者编程入门指南》和可爱的团团!
点击开始抽奖吧,您将有两次抽奖机会哟!";echo $notice_second_part;
//当用户点击抽奖后,将会往lucky表中插入一个默认的记录
}
elseif($rowcount == 1)
{
//当数据表中有数据时,表明用户已经开始抽奖了,接下来就要判断抽奖的次数
$check_row = mysqli_fetch_array($check_result, MYSQLI_ASSOC);
if($check_row["number"] == 0)
{
//当抽奖次数为0时有两种情况:抽中和没有抽中
if($check_row["status"] == 0)
{
//如果没有抽中就客套一下,不再显示抽奖表单
echo $notice_first_part;
echo " 虽然你抽了两次都没有抽中,但团团还是感受到您的爱啦~";
echo $notice_third_part;
}
else
{
//如果抽中了就让对方联系韩林涛,不再显示抽奖表单
echo $notice_first_part;
echo " 您竟然猜中了团团的身高,祝贺您中奖啦!请您尽快通过邮件联系我吧!";
echo $notice_third_part;
}
}
elseif($check_row["number"] == 1)
{
//当抽奖次数为1时也有两种情况:抽中和没有抽中
if($check_row["status"] == 0)
{
//如果抽奖次数为1,且状态为0,就告诉对方还有一次抽奖机会,并且把抽奖表单显示出来
echo $notice_first_part;
echo " 您还有一次抽奖机会哟!加油!";
echo $notice_third_part;
echo $form; //当用户还有一次抽奖机会且没有抽中的时候,要把表单显示出来
}
else
{
//如果抽中了就联系韩林涛,不再显示抽奖表单
//如果抽中了就让对方联系韩林涛,不再显示抽奖表单
echo $notice_first_part;
echo " 您竟然猜中了团团的身高,祝贺您中奖啦!请您尽快通过邮件联系我吧!";
echo $notice_third_part;
}
}
elseif($check_row["number"] == 2)
{
//当用户还有两次抽奖机会时,状态肯定是0
echo $notice_first_part;
echo " 您还有两次次抽奖机会哟!加油!";
echo $notice_third_part;
echo $form; //当用户还有一次抽奖机会且没有抽中的时候,要把表单显示出来
//此时只要用户提交了抽奖结果,就会进入到上面的循环
}
}
?>
第四步:跟踪抽奖记录
接下来还需要写两个数据表的操作:
一个是当用户首次进入抽奖页面时,数据表中添加的一条新纪录:
$sql_insert = "INSERT INTO `lucky` ( `eventid`, `userid`, `number`, `status`) VALUES ('1', '$user_id', '2', '0')"; $insert_result = mysqli_query($conn,$sql_insert); if(!$insert_result) { //当数据表中没有记录时表明用户还没有开始抽奖 echo $notice_first_part; echo " 系统尚未为您准备好本次抽奖活动,请您稍后再试!"; echo $notice_third_part; } else{ //当用户初始抽奖数据插入后提醒用户开始抽奖,此时刷新页面 echo $notice_first_part; echo " 感谢您关注《译者编程入门指南》和可爱的团团!点击开始抽奖吧,您将有两次抽奖机会哟!"; echo $notice_second_part; }
还有一个是用户提交结果后的正误判断:
$bellasheight = "100"; $guess = $_POST["guess"]; //获取用户猜的数字 $number = $_POST["number"]; //获取剩余次数 if($guess == $bellasheight) { //即便猜对了也要扣一次机会 $update_number = $number - 1; $sql_update = "UPDATE `lucky` SET `status` = '1',`number` = '$update_number' WHERE `eventid` = 1 AND userid = '$user_id'"; $update_result = mysqli_query($conn,$sql_update); if($update_result) { echo "; echo "; } else{ echo "; echo "; } } else { //每猜错一次扣一次机会 $update_number = $number - 1; $sql_update = "UPDATE `lucky` SET `number` = '$update_number' WHERE `eventid` = 1 AND userid = '$user_id'"; $update_result = mysqli_query($conn,$sql_update); if($update_result) { echo "; echo "; } else{ echo "; echo "; } }
这样一来,整个抽奖程序的主体就做完啦!
为了让大家看到公平公正公开的结果,我还将全部抽到奖的用户邮箱显示了出来:
代码如下:
<?php $sql_winner_check = "SELECT * FROM lucky WHERE status = 1 "; $winner_check_result = mysqli_query($conn,$sql_winner_check); $winner_count = mysqli_num_rows($winner_check_result); echo '
获奖用户ID
用户邮箱
';
while($winner_row = mysqli_fetch_array($winner_check_result, MYSQLI_ASSOC))
{
$winnerid = $winner_row["userid"];
$sql_info_check = "SELECT * FROM admin WHERE id = '$winnerid'";
$info_check_result = mysqli_query($conn,$sql_info_check);
$info_row = mysqli_fetch_array($info_check_result, MYSQLI_ASSOC);
$username_replaced = substr_replace($info_row["username"],'**',3,3);
$email_replaced = substr_replace($info_row["email"],'**',0,2);
echo '';
echo ''.$username_replaced.'';echo ''.$email_replaced.'';
echo '
';}
echo '
'; ?>
另外,团团刚满月没多久的时候还专门给新书拍了一张宣传照,大家可以借此估计一下她的身高哟~
在抽奖页面能看到高清版,先在这里留点神秘感
说了这么多,究竟怎么抽奖呢?
流程如下:
第一步:注册LingualJob,注册完成后等待抽奖时间到来,抽奖时间一到就能够在右下角看到”抽奖“按钮:
网站地址:http://www.lingualjob.com
点击下方“阅读原文”也可以注册~
注册邀请码为:YIYIYI
第二步:开始抽奖
(大家自行脑补这个流程即可)
第三步:抽到奖后尽快通过页面中提供的联系方式与我取得联系,我会尽快发快递;抽不到奖的就只能等待下一次活动喽,以后会不定期抽奖哒!
那么抽奖时间呢?
抽奖时间是:
北京时间 2020年7月21日 晚上 7:00
不要记错时间哟!大家最好提前注册后等待抽奖时间到来。
那么有什么注意事项呢?
当然有啦~
1. 虽然LingualJob可以注册很多账号,但是每位抽奖者仅可以抽一次,一旦发现一个人重复注册并多次抽奖,奖品就没有你的了哟!
2. 大家如果有幸抽到奖,得知了团团出生时的身高,也一定不要在抽奖结束前告诉其他人,一旦发现这种情况,奖品也没有你的了哟!
3. 本次抽奖就是图个欢乐,大家不必过于上心,这本书不是那种拿到之后就大富大贵的宝贝
最后,祝大家抽奖快乐!
编程指南_今晚7点,译者编程入门指南抽奖!相关推荐
- 【RPi树莓派使用指南】树莓派官方7寸屏入门指南
Category Archives: Raspberry Pi [RPi树莓派使用指南]树莓派官方7寸屏入门指南 Posted by Yunfei on August 8, 20164 comment ...
- python积木编程软件_童心制物慧编程全新 Python 编辑器正式上线
原标题:童心制物慧编程全新 Python 编辑器正式上线 作为一款致力于 提供更专业.更多样的STEAM教育解决方案的编程软件,童心制物慧编程一直不断在优化慧编程的教学功能,只为了给所有编程教育者提供 ...
- python入门指南小说免费阅读-python3.6.0入门指南(官方版).pdf
您所在位置:网站首页 > 海量文档  > 计算机 > Python python3.6.0入门指南(官方版).pdf7 ...
- python入门指南by许半仙百度云-Python入门指南 作者:许半仙(4)
Python入门指南 作者:许半仙(4) 字体:[大 中 小] 结果快下班的时候忽然来了个紧急任务,晚上得加班. 受申请了在家办公,把电脑背回家,并告知了攻这一消息. 攻体贴地揉了揉受的脑袋,说:&q ...
- 客制化键盘编程_客制化机械键盘入门指南
数字时代,键盘是我们与世界交互的重要一环.数字公民没有一把趁手的键盘,就好像侠客没有自己的宝剑. 要买键盘,一个绕不开的话题就是机械键盘.这几年机械键盘很火,它们有着出色的手感.不俗的性能,经久耐用的 ...
- python多线程并发编程技术_同步线程 -
Python并发编程教程™
线程同步可以定义为一种方法,借助这种方法,可以确信两个或更多的并发线程不会同时访问被称为临界区的程序段. 另一方面,正如我们所知道的那样,临界区是共享资源被访问的程序的一部分. 因此,同步是通过同时访 ...
- java多线程编程同步方法_实践【Java多线程编程核心技术】系列:同步方法造成的无限等待...
本文实践来自于[Java多线程编程核心技术]一书! 同步方法容易造成死循环,如-- 类Service.java: package service; public class Service { syn ...
- 电脑编程教学_梁溪区在线少儿编程哪个机构比较靠谱
梁溪区在线少儿编程哪个机构比较靠谱 小码王专注于7-16岁青少年编程教育,引进欧美先进教育理念和课程平台,累计培养上千名学生.课程在浙江大学专家教授及信息奥赛教练指导下研发,借助科学的教育理念.雄厚的 ...
- 电脑编程教学_河东CNC产品零件编程培训量身定制课程大纲
河东CNC产品零件编程培训量身定制课程大纲 鼎才郑重承诺:我校所有学员包教包会,学会为止,学成后能独立做事.从基础的软件界面,逐步到基本的点,线,面,体等模型的构建,再到二维平面加工刀路,三维曲面加工 ...
最新文章
- Linux平台安装MongoDB
- 【NLP】【七】fasttext源码解析
- purple-class2-默认选项切换
- 【原创】使用yahoo雅虎js库(YUI)建立无刷新的N级树(可添加删除节点)
- 申威 linux内核,一种申威防火墙快速移植高版本linux内核的方法与流程
- [译转] eBPF 概念和基本原理
- python+Django框架运用(一)
- Mac系统访问Windows共享文件的详细步骤
- 【BZOJ】1270 [BeijingWc2008]雷涛的小猫
- linux提取曲线数据软件,曲线图转数据工具软件(Engauge Digitizer)提取文献中的数据...
- 联想电脑管家和驱动人生 驱动版本对比
- 斯坦福NLP名课带学详解 | CS224n 第7讲 - 梯度消失问题与RNN变种(NLP通关指南·完结)
- Html炫酷代码例程
- linux otl mysql_Linux下用OTL操作MySql(包含自己封装的类库及演示样例代码下载)...
- idea开发SSM框架乐器租赁网站管理系统 (javaweb-php-asp.netC#-j2ee-springboot)
- python爬知识星球付费数据_Python 知识星球爬虫(一) 根据 topic comment 爬取数据...
- Redis-命令操作Redis
- Caused by: java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher
- 计算机信息的安全威胁包含( ),计算机信息系统存在的主要安全威胁不包括()
- RedmiBook 14 XMA 1901-AI-OpenCore黑苹果efi引导文件