Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Протокол добавления друга в социальной сети
 
 автор: kvins   (04.03.2011 в 17:32)   письмо автору
 
 

Пример.

есть 2 разные страницы пользователей (страница user.php?id1 и user.php?id2)
и 1 пользователь находится на странице второго пользователя и по нажатию кнопки на странице должно отправится второму пользователю на странице (agree.php)
примерно такой код

<div><a href='setagree.php?yes'>присоединится</a> <a href='setagree.php?no'>отклонить</a></div>



обрабатывает это setagree.php

вот я подумал есть какая нить функция на подобии
mysql_query ("INSERT INTO

к примеру так (если человек нажал кнопку пригласить) mysql_query ("INSERT INTO %s ) ,$set

$set = print <<<HERE
<div><a href='setagree.php?yes'>присоединится</a> <a href='setagree.php?no'>отклонить</a></div>
>>>HERE

что есть на подобии этого?

  Ответить  
 
 автор: psychomc   (04.03.2011 в 17:55)   письмо автору
 
   для: kvins   (04.03.2011 в 17:32)
 

попробуйте объяснить чего хотите более связно

  Ответить  
 
 автор: cheops   (04.03.2011 в 17:58)   письмо автору
 
   для: kvins   (04.03.2011 в 17:32)
 

Действительно не очень понятно.

  Ответить  
 
 автор: kvins   (04.03.2011 в 18:16)   письмо автору
 
   для: cheops   (04.03.2011 в 17:58)
 

соц сеть вконтакте при добавлении пользователя человеку приходит табличка чтобы подтвердить
(такое подтверждение мне надо) так же для каждого пользователя на которого нажали

  Ответить  
 
 автор: alexander95   (04.03.2011 в 18:20)   письмо автору
 
   для: kvins   (04.03.2011 в 18:16)
 

Создайте таблицу в которую будете забивать ид пользователя и ид всех, кто отправил ему приглашение. А потом просто проверять при входе на страницу.

Как то так наверно.

  Ответить  
 
 автор: cheops   (04.03.2011 в 18:23)   письмо автору
 
   для: kvins   (04.03.2011 в 18:16)
 

Обычно для этого заводят таблицу базы данных, в которую помещают id пользователя предлагающего себя в друзья, id пользователя, которому предлагается друг и статус записи. Перед отображением страницы пользователя, проверяется эта таблица на предмет: нет ли для текущего пользователя новых записей, если есть - выводится предложение о том, добавить друга или отклонить предложение. Если человек соглашается или отклоняет предложение - мы соответственно добавляем или не добавляем друга (в таблицу связей друзей), при этом меняем статус записи в таблице предложений на "отклонен" или "принят". При обновлении страницы первого пользователя - выводим ему сообщение о том, что его запрос отклонен или принят, при этом уничтожаем запись в таблице предложений.

Все формы, сообщения регламентируются наличием записи в таблице и её статусом.

  Ответить  
 
 автор: alexander95   (04.03.2011 в 18:31)   письмо автору
 
   для: cheops   (04.03.2011 в 18:23)
 

То же самое, по сути, что и я предложил, не так ли?:)

  Ответить  
 
 автор: cheops   (04.03.2011 в 18:49)   письмо автору
 
   для: alexander95   (04.03.2011 в 18:31)
 

Конечно, я просто ответа не видел, когда отвечал, да и все-равно бы наверное стал писать свой ответ. Много одинаковых ответов - это не плохо и всегда на форуме приветствовалось, так как сюда многие ходят учиться, тренироваться, восстанавливать программисткую форму. А если только читать, не отвечая, то эффективность очень маленькая.

  Ответить  
 
 автор: alexander95   (04.03.2011 в 19:06)   письмо автору
 
   для: cheops   (04.03.2011 в 18:49)
 

...так как сюда многие ходят учиться, тренироваться, восстанавливать программистскую форму.

Совершенно согласен:)

  Ответить  
 
 автор: lElectroHardl   (04.03.2011 в 18:37)   письмо автору
 
   для: kvins   (04.03.2011 в 17:32)
 

Возможно просто сделать отдельную таблицу (test_friend), где будет поля. 1 поле - id пользователя, 2 - id того, кто тебя пригласил, 3 - состояние (0 неопределенно, 1 - пригласил, 2 - отклонил). И, соответственно, строить ссылку (nam.php?id_test_friend=val&status=1).

Типа того.
Не знаю, может вам что-то другое нужно.

  Ответить  
 
 автор: alexander95   (04.03.2011 в 19:09)   письмо автору
 
   для: lElectroHardl   (04.03.2011 в 18:37)
 

А зачем вообще нужно состояние? Не понимаю. По моему, можно при добавлении друга просто удалять ид добавленного и то же самое при отклонении.

  Ответить  
 
 автор: cheops   (04.03.2011 в 19:12)   письмо автору
 
   для: alexander95   (04.03.2011 в 19:09)
 

Приглашающему будет не понятно, отклонили его просьбу или это система глюкнула и приглашаемый этого приглашения даже в глаза не видел...

  Ответить  
 
 автор: alexander95   (04.03.2011 в 19:21)   письмо автору
 
   для: cheops   (04.03.2011 в 19:12)
 

Ну тот же Вконтакте не оповещает при отклонении/добавлении.
Правда, он использует что - то похожее для того чтобы заявка на добавление не отправлялась повторно.

В общем, согласен. Но это только в том случае если записи из этой таблицы заявок не будут удаляться. Все же мой вариант мне кажется более удобным...:)

  Ответить  
 
 автор: alexander95   (04.03.2011 в 19:16)   письмо автору
 
   для: alexander95   (04.03.2011 в 19:09)
 

А зачем вообще нужно состояние? Не понимаю. По моему, можно при добавлении друга просто удалять ид добавленного и то же самое при отклонении.

Upd

И хранить id можно просто перечислением, ну, например, через запятую. Правда, тогда придется перезаписывать это поле, но ведь это не слишком ресурсоемко?

  Ответить  
 
 автор: kvins   (04.03.2011 в 19:43)   письмо автору
 
   для: alexander95   (04.03.2011 в 19:16)
 

спс за сообщения , извините что не участвовал просто отходил на время ,а когда пришел тут уже стока написано

ща попробую , если чета не понятно будет опять писать =)

  Ответить  
 
 автор: alexander95   (04.03.2011 в 19:45)   письмо автору
 
   для: kvins   (04.03.2011 в 19:43)
 

Удачи ;)

  Ответить  
 
 автор: kvins   (04.03.2011 в 20:02)   письмо автору
 
   для: alexander95   (04.03.2011 в 19:16)
 

И хранить id можно просто перечислением, ну, например, через запятую. Правда, тогда придется перезаписывать это поле, но ведь это не слишком ресурсоемко?

прочитал это еще раз и вспомнил еще важную деталь, а напомнили мне эти строчки.

как насчет того когда он примет его в друзья =) ведь врядли у каждого будет тока 1 друг , их же надо где то перечислять. надо еще 1 таблицу создавать ?

  Ответить  
 
 автор: alexander95   (04.03.2011 в 20:08)   письмо автору
 
   для: kvins   (04.03.2011 в 20:02)
 

Ладно. Тогда можно сделать как предлагает хеопс. А можно разделять приглашения, например, запятой, а уже добавленных друзей чем либо другим, символом '#', например
это уж на Ваше усмотрение:)

  Ответить  
 
 автор: kvins   (04.03.2011 в 20:16)   письмо автору
 
   для: alexander95   (04.03.2011 в 20:08)
 

мы соответственно добавляем или не добавляем друга (в таблицу связей друзей), при этом меняем статус

так он не рассказал как построить таблицу связей , он тока упомянул о ней =)

понятно тока как кидать приглашение

  Ответить  
 
 автор: alexander95   (04.03.2011 в 20:26)   письмо автору
 
   для: kvins   (04.03.2011 в 20:16)
 

Ну у вас же есть таблица всех пользователей? Вот в нее добавьте столбец с друзьями и приглашениями (или два столбца с соответствующими названиями), при отправлении запроса записывается id отправителя в нужный столбец. На каждой странице должен быть скрипт, проверяющий, есть ли новые приглашения. Если есть, то выводится, что есть:)

  Ответить  
 
 автор: kvins   (04.03.2011 в 20:53)   письмо автору
 
   для: alexander95   (04.03.2011 в 20:26)
 

да уже не в приглашении дело , я не пойму где хранить всех друзей


Ну у вас же есть таблица всех пользователей?
да есть но если туда добавить друга то туда влезет тока 1,

в таблице пользователя в его строку можно только 1 раз вставить , то я не понимаю как все id туда запихнуть
или я вас не понял =)

  Ответить  
 
 автор: alexander95   (04.03.2011 в 21:00)   письмо автору
 
   для: kvins   (04.03.2011 в 20:53)
 

Я имел ввиду что при появлении заявки надо дописывать в БД, но это уже не ко мне, у меня с SQL плохо...:)

  Ответить  
 
 автор: alexander95   (04.03.2011 в 21:06)   письмо автору
 
   для: alexander95   (04.03.2011 в 21:00)
 

Вроде как что то вроде этого:
1. Записываете в переменную текущее содержание ячейки
2. Конкатенацией прибавляете ид добавляющего
3. Добавляете в БД как то так: insert into ... values(...)

с удалением пользователя/заявки то же самое, только там надо будет уже вырезать ненужный ид.

Но это все конечно индусский код, наверняка все можно сделать проще:)

  Ответить  
 
 автор: kvins   (04.03.2011 в 23:53)   письмо автору
 
   для: alexander95   (04.03.2011 в 21:06)
 

2. Конкатенацией прибавляете ид добавляющего

можешь показать пример ?? а то никогда не использовал такое =)
или сылочку дать об этом

  Ответить  
 
 автор: alexander95   (05.03.2011 в 08:27)   письмо автору
 
   для: kvins   (04.03.2011 в 23:53)
 

$u_id=$_COOKIE['uid'];
$add_id=$_POST['id'];
$all_u_friends=mysql_query('select %columnName% from %tableName% where id='.$u_id);
$new=$all_u_friends.", ".$add_id;
mysql_query('insert into %tableName% values($u_id, ..., $new)');
echo "your request sended";

как то так, но, повторяю, лучше у других спросить:)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования