Jump to content
php.lv forumi

"Draugu sistēma"


reGative

Recommended Posts

Labdien!

 

Esmu uztaisījis draugu sistēmu. Bet netieku es ar vienu lietu galā - ar draudzības apstiprinājumiem viss ok, bet iznāk viena štelle.

 

Ir trīs draugi - A, B un C. A uzaicina B. A redz B savā draugu sarakstā, bet B redz sevi savā draugu sarakstā. Un ja C uzaicina A, tad C savā draugu sarakstā redz A, bet A redz B un sevi savā draugu sarakstā.

 

MySQL pieprasījums draugu sarakstam (te arī ir problēma):

 

<?php
public function get_list_of_friends($invited_id)
{
   return DB::select('friends.*', 'users.*')
   ->from('friends')
   ->join('users')
   ->on('users.id', '=', 'friends.invitor_id')
   ->where('friends.status', '=', 'accepted')
   ->and_where('friends.invitor_id', '=', $invited_id)
   ->or_where('friends.status' ,'=', 'accepted')
   ->and_where('friends.invited_id', '=', $invited_id)
   ->as_object()
   ->execute();
}

 

Te arī ir shēmas tabulām 'users' un 'friends':

https://gist.github.com/3186697

 

Ceru, ka kādam radīsies ideja, kā to varētu uztaisīt.

Edited by reGative
Link to comment
Share on other sites

Kāpēc tev atkārtojas where nosacījumi ?

 

 

->where('friends.status', '=', 'accepted')
   ->and_where('friends.invitor_id', '=', $invited_id)
   ->or_where('friends.status' ,'=', 'accepted')
   ->and_where('friends.invited_id', '=', $invited_id

 

 

Kā arī man liekas, ka būtu vieglāk glabāt kaut kā šādi draugus -

 

// id // user_id // friends // pending_friends

-----------------------------------------------------

// 1 // 1 //  5, 4 // 3, 6, 2
// 2 //  2 // 3 , 4 , 6 , 5 , 9 // 1, 7

... 

 

Un tad vienkārši varētu no šīs tabulas izvilkt pašreizējā usera draugus, un tālāk ar drauga id, sameklēt viņu info no vajadzīgās tabulas.

Edited by y2ok
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...