Php 如何从数据库中选择一个行数组并用另一个数据数组更新它们
我正在unity中开发一个交易卡游戏,需要PHP和MySQL方面的帮助 我的数据库结构是这样的。这是在玩家注册时设置的。每个玩家在玩家牌堆内有60排,因为牌堆限制为60排Php 如何从数据库中选择一个行数组并用另一个数据数组更新它们,php,mysql,arrays,Php,Mysql,Arrays,我正在unity中开发一个交易卡游戏,需要PHP和MySQL方面的帮助 我的数据库结构是这样的。这是在玩家注册时设置的。每个玩家在玩家牌堆内有60排,因为牌堆限制为60排 players player_id/email/password/username player_deck player_id/card_id/card_amount 我试图在玩家保存牌组时更新这些行。从Unity的一端,我正在调用一个类似于以下内容的URL "localhost/saveplayerdata/savep
players
player_id/email/password/username
player_deck
player_id/card_id/card_amount
我试图在玩家保存牌组时更新这些行。从Unity的一端,我正在调用一个类似于以下内容的URL
"localhost/saveplayerdata/saveplayerdeck.php?playerid=&deckcardids=&deckcardamounts="
PHP页面将deckcards
和deckcardaments
存储到两个数组中
现在我被困在这里了。我需要获取属于该播放器的所有行,并使用Unity发送的数据更新它们
这就是我目前所拥有的。我可以选择所需的行,但如何使用数组中的数据更新它们?谢谢你的阅读
编辑:添加了要更新的我的查询。这将更新所有行。我只需要它用deckcardis
所在的索引更新循环通过的当前行。我知道我的更新查询是错误的,但我不确定使用的语法是否正确,因此我只影响我所在的行
<?php
$playerId = $_GET['playerid'];
$playerDeckCardIds = $_GET['deckcardids'];
$playerDeckCardAmounts = $_GET['deckcardamounts'];
$deckCardIds = explode(" ", $playerDeckCardIds);
array_pop($deckCardIds);
$deckCardAmounts = explode(" ", $playerDeckCardAmounts);
array_pop($deckCardAmounts);
//This is the new array of cardIds sent from Unity
//foreach ($deckCardIds as $value)
//{
//echo "Deck Card Id $value <br>";
//}
//This is the new array of cardAmounts sent from Unity
// foreach ($deckCardAmounts as $value)
//{
//echo "Deck Card Amount $value <br>";
//}
try
{
#Connect to the db
$conn = new PDO('mysql:host=localhost;dbname=tcg', 'root', '');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare('SELECT card_id, card_amount FROM player_deck WHERE player_id = :player_id');
$stmt->execute(array('player_id' => $playerId));
$r = $stmt->fetchAll(PDO::FETCH_OBJ);
$i = 0;
#If we have a result
if (count($r))
{
foreach ($r as $row)
{
$stmt = $conn->prepare('UPDATE player_deck SET card_id = :card_id WHERE player_id = :player_id');
$stmt->bindParam(':player_id', $playerId);
$stmt->bindParam(':card_id', $deckCardIds[$i]);
$stmt->execute();
$i ++;
}
}
} catch (PDOException $e)
{
echo 'ERROR: ' . $e->getMessage();
}
?>
欢迎来到SO。请阅读,这不是一个免费的编码或教程服务。你必须表明你已经做出了一些努力来解决你自己的问题。你的更新查询在哪里?@mkaatman抱歉更新了我的上述问题。