如何选择所有用户推荐 ID?

  • 本文关键字:用户 ID 何选择 选择 php
  • 更新时间 :
  • 英文 :


如何选择所有用户推荐?

| id    |            user_id |    friend_id |
|-------|--------------------|--------------|
| 1     |                1   |          2   |
| 2     |                2   |          3   |
| 3     |                3   |          4   |
| 4     |                10  |          15  |

因此,在上述实例中,用户 1 的推荐线索为 3,因为他们推荐的人,推荐某人,然后他们推荐的人推荐其他人......

将其作为 php 函数进行可能会更好,但我正在努力解决它?

下面是我的代码

public function has_child($referee_referees){
$this->db->select("user_account_phone");
$this->db->where('referee_phone_number', $referee_referees);
$query = $this->db->get('account');
if($query->num_rows() == 0) {
return FALSE;
}
return TRUE;
}

public function get_referee_referee_details($user_account_phone){
$this->db->select('user_account_phone');
$this->db->where('referee_phone_number', $product_phone_number);
$query = $this->db->get('account');
foreach($query->result() as $rows){
$child_ids[$rows->user_account_phone] = $rows->user_account_phone;
$referee_referees = $rows->user_account_phone;
if($this->has_child($referee_referees)){
$child_ids[$rows->user_account_phone] = $this->get_referee_referee_details($rows->user_account_phone);  
}
echo "<pre>";
var_dump($child_ids);
echo "</pre>";

return $child_ids;
}

// return $child_ids;
}

如果你的内存中有数据(这对于一个大表来说是有问题的(

$users = array(
array("id" => 1, "user_id" => 1 , "friend_id" => 2,),
array("id" => 2, "user_id" => 2 , "friend_id" => 3,),
array("id" => 3, "user_id" => 3 , "friend_id" => 4,),
array("id" => 4, "user_id" => 10, "friend_id" => 15,),
);
function getRefferrals(&$users, $userId)
{
$referrals = 1;
foreach($users as $user) {
if($user["user_id"] == $userId) {
$referrals += getRefferrals($users, $user["friend_id"]);
}
}
return $referrals;
}
$referrals = getRefferrals($users, 1) - 1;
var_dump($referrals);

如果内存中没有数据,则可以检查用户是否有"friend_id"以及表中是否存在

您必须编写一些代码来迭代结果。

此代码非常粗糙,不适用于引用了多个人的用户。

function get_referral_count($userId) {
$count = 0;
// Just an example, you should escape this query!
while ($res = // SELECT * FROM user_referral where user_id = $userId;) 
{
$userId = $friendId;
$count++;
}
return $count;
}

有趣的问题

我为您尝试了最短的代码

这将起作用 - (您可以使用不同的数据对其进行测试(

从演示中选择friend_id,其中user_id = 1 或user_id(从演示中选择friend_id(

最新更新