如何使“跟随”按钮更改为“跟随”社交网络codeigniter

时间:2013-03-07 21:26:24

标签: codeigniter

我正在使用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;
      }
    }

2 个答案:

答案 0 :(得分: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;
  }

但请注意,这可能是一项服务器密集型操作。

答案 1 :(得分:0)

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

基于这种假设,您已经将您正在查看的个人资料的人传递给了视图,因此您只需要一个观看者所关注的人员列表来比较该ID。

我不确定您的代码中的查询是什么,因为没有数据库的描述所以我将按照表格的布局方式给出代码,这是一个用户表和下表只是用户的联接表。假设下面的表有3列id,userId,followId,其中userId是你,followId是你所关注的人。

控制器

$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;
    }