0

我正在使用 Codeigniter 制作一个社交网络,并且当您已经在关注一个人时,我试图让用户视图显示一个按钮我该怎么做?

模型

<?php

class User_model extends CI_Model {

function get_All(){
        $this->db->select('*');    
        $this->db->from('membership');
//          $this->db->join('following', 'following.id = membership.id');
        $q = $this->db->get();      


    if($q->num_rows() > 0) {
        foreach ($q->result() as $rows) {
            $data[] = $rows;

        }

        return $data;
      }
    }
4

2 回答 2

0

这是一点工作。假设可以搜索所有用户,您可能有一个所有用户的列表,以及所有用户的“朋友”列表。然后你通过两个比较它们。以下是一个想法:

 Database Members: All members               |ID_User|...other user stuff...

 Database Followers: Lists all friendship   |ID_User|ID_Follower|

为此,您需要两个查询:一个用于所有查询,一个用于 ID_User=$UserID 的关注者。当您按照建议遍历所有成员时,您可以

function get_Followers(){
       $friends= $this->db->query('SELECT * FROM Followers WHERE ID_User=$UserID');
       $follow_array=$row->ID_Follower;
}

现在:

 $follow_array    //A list of all friends.
 $q               //Your original list of members

然后你可以使用:

if($q->num_rows() > 0) {
    foreach ($q->result() as $rows) {
        if(in_array($rows->ID_Follower, $Follower_array))
        {
        $data=true;
        }
        else
        {
        $data=false;
        }

    }

    return $data;
  }

但是请注意,这可能是一个非常依赖服务器的操作。

于 2013-03-07T21:54:00.797 回答
0

我将假设您正在谈论访问个人资料,如果您正在关注该人,您会看到一个按钮。这只需要视图本身中的一个查询和逻辑。

按照这个假设,您已经将您正在查看的个人资料的人传递给视图,因此您所需要的只是查看者正在关注的人员列表,以便与该 ID 进行比较。

我不太确定你的代码中的查询在做什么,因为没有对你的数据库的描述,所以我将给代码以表的布局方式,这是一个用户表和一个下表,只是一个加入用户表。假设下表有 3 列 id、userId、followingId,其中 userId 是您,followingId 是您关注的人。

控制器

$data['following'] = $this->modelName->getFollowing($userId); //pass current userId
$this->load->view('viewName',$data);

模型:

public function getFollowing($userId)//$userId to be passed as the person viewing.
{
    $this->db->where('userId',$userId);
    $data = $this->db->get('following');
    if($this->db->num_rows() > 0)
    {
       return $data;
    } else {
       $data=array();
       $return $data;
    }

然后在视图中它是一个简单的 if 语句。

if(in_array($profileId,$following))
    {
        echo button;
    }
于 2013-03-08T03:08:52.760 回答