PHP使用另一个数据更新表

时间:2015-11-28 23:18:45

标签: php mysql

我是编程新手。本周我学习了HTML,CSS,PHP和MySQL的基础知识,我正在制作一个简单的回合制策略游戏来练习编码(并且在做的时候玩得开心!)。

现在,当我被困住时,我通常会看看DuckDuckGo和YouTube,但这次我似乎无法找到问题的答案。希望你可以帮忙:

我正在创建一个cronjob文件来更新我的玩家所拥有的资源。在表1(名为stockpile)中,我有名为village_idwoodstoneiron的列。在表2(命名建筑物)中,我有名为village_idwoodcuttersquarrymine的列。现在这里是我希望代码执行的示例:

拿村庄1的'木头'并像这样更新; wood = wood + (x * woodcutter of village1)

我真的希望有人可以帮助我!我的项目很顺利,除了这部分我似乎无法绕过我的脑袋......

2 个答案:

答案 0 :(得分:0)

使用子查询(将[x]替换为某个值):

UPDATE stockpile s
SET wood = wood + [x] * 
(SELECT woodcutters
    FROM buildings b
    WHERE b.village_id = s.village_id);

答案 1 :(得分:0)

您需要SELECT表格中的列,并从这些列中获取播放器的数据,乘以并更新表格。我假设你的village_id是unique index

$sql = SELECT COUNT(*) FROM table1;
$result = $conn->query($sql);

$sql1 = "SELECT wood FROM table1";
$result1 = $conn->query($sql);
$arr1 = $result1->fetch_assoc();

$sql2 = "SELECT woodcutter FROM table2";
$result2 = $conn->query($sql2);
$arr2 = $result2->fetch_assoc();


for ($i=1;$i<=$result;$i++) {

    $newwood = $arr1[$i] + (x * $arr2[$i]);

    $sql3 = "UPDATE table1 SET wood=" . $newwood . " WHERE id=" . $i;
    $conn->query($sql3);
}

要使其成为cron,您需要使用Apache或其他服务器配置作业。