php+MySQL实现抽奖代码问题

php+MySQL实现抽奖代码问题,第1张

首先关于PHP+MYSQL来实现不可以重复抽奖这个很好实现,因为你抽奖的页面要么是动态要么是AJAX来实现的。首先AJAX的先不说,我先说关于动态页面实现。

那么就是加载页面的时候判断对方今日有没有抽过,如果抽过了那么就用if语句来不执行抽奖代码。其实里面还有很多的细节问题,你说让贴出代码,我不愿意抄别人的东西,同时网上给的代码好用的很少。

你要是想做一个有个性的功能还是要自己写的或者修改,不知道你对JS了解多少也没法说。我说的就是大概的思路。

样式千万种,你找到一个你觉得方便而且能达到你目的的同时针对自己的知识的吧。其实不论那种方式都是要用到AJAX的用来确认已经抽过。

连接到一个 url 地址为localhost 、 端口为 3306 的mysql服务器上。mysql服务器的帐号是"root",密码是"9999"。mysql 服务器上有一个数据库 ok , 数据库里有一个表 abc。表 abc 一共为两列,列名分别是 "id" 和 "name" ,将 abc 里的所有数据读出来。

<? 

$dbh = @mysql_connect("localhost:3306","root","9999") 

/* 定义变量dbh , mysql_connect()函数意思是连接mysql数据库, "@"的意思是屏蔽报错 */ 

if(!$dbh){die("error")} 

/* die()函数的意思是将括号里的字串送到浏览器并中断PHP程式 (Script)。括号里的参数为欲送出的字串。 */ 

@mysql_select_db("ok", $dbh) 

/* 选择mysql服务器里的一个数据库,这里选的数据库名为 ok */ 

$q = "SELECT * FROM abc" 

/* 定义变量q, "SELECT * FROM abc"是一个SQL语句,意思是读取表abc中的数据 */ 

?> 

<br /> 

<!--========= 方法一 =========--> 

<br /> 

<? 

$rs = mysql_query($q, $dbh) 

/* 定义变量 rs ,函数mysql_query()的意思是:送出 query 字串供 MySQL 做相关的处理或者执行.由于php是从右往左执行的,所以,rs的值是服务器运行mysql_query()函数后返回的值 */ 

if(!$rs){die("Valid result!")} 

echo "<table>" 

echo "<tr><td>ID</td><td>Name</td></tr>" 

while($row = mysql_fetch_row($rs)) echo "<tr><td>$row[0]</td><td>$row[1]</td></tr>" 

/* 定义量变(数组)row,并利用while循环,把数据一一写出来.  

函数mysql_fetch_row()的意思是:将查询结果$rs单列拆到阵列变数中.  

$row[0] 和 $row[1] 的位置可以换*/ 

echo "</table>" 

?> 

<br /> 

<!--========= 方法二 =========--> 

<br /> 

<? 

$rs = mysql_query($q, $dbh) 

while($row = mysql_fetch_object($rs)) echo "$row->id $row->name <br />" 

/* id和name可以换位置 */ 

?> 

<br /> 

<!--========= 方法三 =========--> 

<br /> 

<? 

$rs = mysql_query($q, $dbh) 

while($row = mysql_fetch_array($rs)) echo "$row[id] $row[name] <br />" 

/* id和name可以换位置 */ 

?> 

<!--========= 方法三最快 =========--> 

<? 

@mysql_close($dbh) 

/* 关闭到mysql数据库的连接 */ 

?>

我建议一下吧,文本数据库的例子本来太多,但是为了逻辑简化,最好通过专门接口实现文件与数据的转换,可以采用我下面的模板编写:

<?php

//文件最前面定义两个全局变量,数据库文件名和用户数组

$pwd_db_file='db.txt'

$UserPassword=array()

//下面的pwd_db_read函数,把文件内容读入到全局数组中

function pwd_db_read(){

global $pwd_db_file, $UserPassword

$fp=fopen($pwd_db_file,'r')

while ($s=fgets($fp)){

list($usr,$pwd)=explode('|', $s)

$UserPassword[$usr]=$pwd

}

fclose($fp)

}

//下面的pwd_db_write函数保存数组内容到文件中

function pwd_db_write(){

global $pwd_db_file, $UserPassword

fp=fopen($pwd_db_file, 'w')

foreach ($UserPassword as $usr=>$pwd)

fputs($fp,"$usr|$pwd\n")

fclose($fp)

}

//有了上面的全局变量和函数,要写什么功能都简单

//下面假释本脚本调用的时候通过reg.php?job=add&user=...&pass=...

//的格式进行调用,job为add表示添加用户,del表示删除,modi表示修改

//另外的user和pass表示用户名或者密码,job不是以上内容表示登录

//主程序一开始就打开数据库

pwd_db_read()

//下面判断功能

if ($jon=='add'){

if (array_key_exists($user,$UserPassword)) echo "用户 $user 已经存在!"

else $UserPassword[$user]=$pass//就一句话,简单吧

}elseif (job=='del'){

unset($UserPassword[$user])//你自己考虑编写是否确认删除的内容

}elseif ($job=='modi'){

if (array_key_exists($user,$UserPassword)) $UserPassword[$user]=$pass//和添加是不是有点类似

else echo "用户 $user 不存在!"

}else{

if ($UserPassword[$user]==$pass){

echo '密码正确。'

//接下来可能要做许多事情

}else echo '密码错误!'

}

//程序最后保存数据库修改

pwd_db_write()

?>

看得懂吗,没有上机调试,语法问题可能难免,如果发现不明白的问题请补充。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/sjk/9960266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存