数据库取出数据后

煎饼果子加仨蛋 2016-07-21 05:25:32
我现在是要在一个表中取出数据后,对它进行运算
数据库是这个样子的
id gid type type_id name num gailv
1 1 did 49 生命卡 1 100
2 1 zid 1 剑 1 200
4 1 jinbi 0 金币 25 1000
5 2 did 49 生命卡 1 100
6 2 zid 15 衣服 1 200
7 2 did 43 宝石 2 1000
8 2 jinbi 0 金币 50 1000
这个是模拟的关卡掉落,gid是关卡,num是掉落数量,gailv是掉落概率
我现在需要做的是扫荡n次关卡 统计掉落道具的数量,然后输出到html中
显示大概是
生命卡 1
剑 1
金币 25
这是我的代码,我是假设扫荡第一关3次
for ($i=1;$i <=3;$i++) {
$sql = "select * from guanka where gid = '1'";
$result = mysql_query($sql);
while($data = mysql_fetch_assoc($result)){
$gailv = $data["gailv"];
$name = $data["name"];
$num =$data["num"];
$rand = rand(1,1000);
if($rand<=$gailv){
$num = $num;
}else{
$num = 0;
}
$num = $num+$num;
echo "name:".$name."num:".$num."<br>";
}
}
这个代码最后运行的结果是这样的
name:生命卡num:0
name:剑num:0
name:金币num:50
name:生命卡num:0
name:剑num:2
name:金币num:50
name:生命卡num:0
name:剑num:0
name:金币num:50
求大神要怎么修改,
...全文
165 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 8 楼 cwk44 的回复:
把u012462876的答案调整成这样 $datarr[$k]['sum'] += 0; $datarr[$k]['sum'] += $datarr[$k]['num']; 应该就行了
非常感谢。已经改好
  • 打赏
  • 举报
回复
引用 6 楼 u012462876 的回复:
上面的sql忘贴了
非常感谢,已经改好了
cwk44 2016-07-23
  • 打赏
  • 举报
回复
把u012462876的答案调整成这样 $datarr[$k]['sum'] += 0; $datarr[$k]['sum'] += $datarr[$k]['num']; 应该就行了
目前造轮子 2016-07-22
  • 打赏
  • 举报
回复
目前造轮子 2016-07-22
  • 打赏
  • 举报
回复
上面的sql忘贴了
目前造轮子 2016-07-22
  • 打赏
  • 举报
回复

<?php
$servername = "localhost";
$db_user = "root";
$db_password = "xxx";
$db_name = "test";
// php5.5
$db = mysqli_connect($servername,$db_user,$db_password,$db_name);
$sql = "select * from test_game where gid=1";
$result = mysqli_query($db,$sql);
echo "<pre>";
$saodang = 3;
$datarr = array();
while($data = $result->fetch_all()){
foreach($data as $k => $v){
$datarr[$k]['gailv'] = $v[5];
$datarr[$k]['name'] = $v[3];
$datarr[$k]['num'] = $v[4];
for($i =0; $i<$saodang;$i++){
$rand = rand(1,1000);
if((int)$rand > (int)$datarr[$k]['gailv']){
$datarr[$k]['num'] = $datarr[$k]['num']+0;
}else{
$datarr[$k]['num'] = $datarr[$k]['num']+$datarr[$k]['num'];
}
}
}

}
var_dump($datarr);
?>
ayzen1988 2016-07-21
  • 打赏
  • 举报
回复

在while循环体内,每次都重新赋值了
$num =$data["num"];
//这样取不到累加的值
  • 打赏
  • 举报
回复
引用 2 楼 qq_35544702 的回复:
[quote=引用 1 楼 qq_35544702 的回复:] 我把NUM=NUM+NUM 改成$num+=$num;还是只加了一次,
这个只加一次已经解决,还有剩下的还是要求大神啊[/quote] 还是不对。这个相加会吧所有的num相加我要疯了
  • 打赏
  • 举报
回复
引用 1 楼 qq_35544702 的回复:
我把NUM=NUM+NUM 改成$num+=$num;还是只加了一次,
这个只加一次已经解决,还有剩下的还是要求大神啊
  • 打赏
  • 举报
回复
我把NUM=NUM+NUM 改成$num+=$num;还是只加了一次,

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧