我的数据库中有一个名为 users_friendships
的表,该表基本上看起来如下:
id uid1 uid2
----- ----- -----
1 1 4
2 1 2
3 2 10
4 3 6
.. .. ..
通过查询,我已经找到了我的朋友的ID。$myid
象征我的ID:
// GET FRIENDS ID
$friendsID = array();
$my_friends = $mysql->prepare("
SELECT CASE WHEN uid1 = ? THEN uid2
ELSE uid1 END AS uid
FROM users_friendships
WHERE uid1 = ? OR uid2 = ?
");
$my_friends->bind_param('iii', $myid, $myid, $myid);
$my_friends->execute();
$my_friends_results = $my_friends->get_result();
while($mf = $my_friends_results->fetch_array()) {
$mfrid = $mf['uid'];
$friendsID[] = $mfrid;
}
我将它们保存在数组中,我可以以某种方式使用它来为朋友的朋友设置查询吗?
您可以重复使用现有代码,在朋友数组上循环:
$friendsoffriendsID = array();
foreach ($friendsID as $friendID) {
$my_friends->bind_param('iii', $friendID, $friendID, $friendID);
$my_friends->execute();
$my_friends_results = $my_friends->get_result();
while($mf = $my_friends_results->fetch_array()) {
$mfrid = $mf['uid'];
$friendsoffriendsID[] = $mfrid;
}
}
这无疑会给您很多重复,因此您可能只想使用Array_unique获得唯一的值:
$friendsoffriendsID = array_unique($friendsoffriendsID);