1

我一直在使用以下数据库结构存储朋友列表:

用户 ID | 朋友编号

我的问题是我有一个界面可以让他们从朋友列表中添加/删除用户,并且朋友列表应该在点击时保存。

那么我删除该用户 ID 的所有朋友然后用保存的朋友列表重新填充数据库是否有意义?听起来有点适得其反,因为如果用户只添加一个用户,它将删除所有朋友并重新添加所有朋友。

4

1 回答 1

3

您可以删除所有然后重新填充,或者您可以存储朋友列表的初始状态,然后在用户编辑后与最终列表进行比较。

我建议您使用此函数array_diff($array1, $array2),执行以下操作:

$initial_list = array (1,2,3,4,5);
$list_after_edit = array (1,2,5,6);

$all_new_items = array_diff($list_after_edit,$initial_list);
foreach ($all_new_items as $item) {
    // Add to database this item
}

$all_deleted_items = array_diff($initial_list,$list_after_edit);
// Execute this query:
$query = 'DELETE FROM table WHERE `User Id` = <some ID> AND `Friend Id` in (' . implode(',',$all_deleted_items) . ')';
于 2013-06-28T20:22:08.953 回答