1

Тема: Як для сайту зробити "Друзі" (php+mysql)

Як реалізувати для сайту "Друзі" щоб користувачі мали можливість долучати один одного до друзів. ?

2

Re: Як для сайту зробити "Друзі" (php+mysql)

табличка friends
поля
userID - varchar(10),
friendsID - varchar(10)

<?
if(isset($_GET['addFriend']) && isset($_GET['userID']) && is_numeric($_GET['addFriend']) && is_numeric($_GET['userID']) {
//clean up $userID and $friendID if needed
$friendID = somefunction($_GET['addFriend']);
$userID = somefunction($_GET['userID']);
$sql = <<<SQL
INSERT INTO friends (userID, friendsID) VALUES ({$userID},{$friendID})
SQL;
$result=$mySQL->query($sql);
}
?>

3

Re: Як для сайту зробити "Друзі" (php+mysql)

Vo_Vik написав:

табличка friends
поля
userID - varchar(10),
friendsID - varchar(10)

<?
if(isset($_GET['addFriend']) && isset($_GET['userID']) && is_numeric($_GET['addFriend']) && is_numeric($_GET['userID']) {
//clean up $userID and $friendID if needed
$friendID = somefunction($_GET['addFriend']);
$userID = somefunction($_GET['userID']);
$sql = <<<SQL
INSERT INTO friends (userID, friendsID) VALUES ({$userID},{$friendID})
SQL;
$result=$mySQL->query($sql);
}
?>

дякую, наприклад у мене є таблиця users в якій id,lastname,name...т.д. як так зробити щоб у того користувача якого я додаю у друзі прийшла заявка Прийняти або Відхилити ... ну так як вконтакте дуже потрібно

4

Re: Як для сайту зробити "Друзі" (php+mysql)

В users не варто, бо там є один запис на кожного користувача. А в нього може бути багато друзів, тобто краще створити нову табличку де будуть описані їх невпорядковані зв’язки.

На рахунок 2-х стороннього френдування, то добавте в табличку поле конфірм і заповнюйте її коли друг підтвердить. Показувати йому повідомлення коли він має непідтверджені запити. Якщо відхиляє, то видаляти запис з таблички.

5

Re: Як для сайту зробити "Друзі" (php+mysql)

Якщо відхиляє, то видаляти запис з таблички.

Тут трошки не так тому що запис з таблички не можна видаляти. При такому розкладі юзер може 100 раз просити запрошення а інший 100 раз видаляти. Моя пропозиція
user_relations
user_relations.id int(11)
user_relations.user_id int(11)
user_relations.friend_id int(11)
user_relations.status  tinyint(1)
Поле статус може бути:
0  - створено дружбу user_id дав запит на дружбу friend_id
1 - дружба прийнята  friend_id нажав Ок
2 - дружба НЕ прийнята  friend_id нажав Відхилити
і пізніше якщо user_id захоче ще раз дати запит на дружбу friend_id він не зможе цього робити так як уже запрошення було відхилено ;)
сповіщення можете іншу таблицю робити тоді буде зручно досить ставити в чергу кому що терба повідомляти ;)

6 Востаннє редагувалося Vo_Vik (24.01.2013 19:50:20)

Re: Як для сайту зробити "Друзі" (php+mysql)

І що вже передумати потім не можна?

Хоча з видаленням таки так. Просто хотів булеве поле запропонувати, можна зробити тоді енум.