因此,我有一个用户数组,每个用户都有一个ID和游戏列表。我将它作为一对userID和gameID存储在数据库中。
每次我要为每个用户更改游戏时,我都需要擦除旧游戏,然后插入新游戏,所以我这样做:
foreach($users as $user) {
$where['id_user'] = $user->id;
$this->tableUsersGames->delete($where);
foreach($user->games as $game){
$data['id_user'] = $user->id;
$data['id_game'] = $game->id;
$this->tableUsersGames->insert($data);
}
}
但是它只会在列表中插入最后一个用户/游戏。我要解决的问题是改为有两个foreach
循环,一个循环用于删除数据,然后另一个循环来插入数据,因此它现在可以正常工作。
我想知道的是为什么这没用?我什至在其中添加了一些回声,以确保它运行正确,并且顺序正确。
确定,进行编辑以澄清情况。
$ users变量如下:
[
{id: 1, games: [
{id: 3, name: 'xyz'},
{id: 5, name: 'xyz'}
]
},
{id: 2, games: [
{id: 2, name: 'xyz'},
{id: 9, name: 'xyz'}
]
}
]
该框架完全按照您的期望进行操作,不需要提交。