Допустим есть логин и этот логин хранится в бд mysql. Как можно привязать друзей к этому логину сохранить их и вывести на страницу. Если сохранять каждый логина то нужно писать дополнительную строку в бд. Как это можно организовать с php или ajax
Создать вторую таблицу вида: userID, friendID или в этой же таблице в ячейку через зяпятую IDы друзей
PHP: $r=mysql_query('SELECT * FROM `table` ORDER BY `id`') or die (mysql_error()); while($array=mysql_fetch_assoc($r)){ $id[]=$array['id']; } в данном случае все id запишутся в массив $id
PHP: $news=mysql_query('select * from `table` where id = "' . $id . '" ') or die (mysql_error()); $a = mysql_fetch_assoc($news); $id=$a['id'];
(( То что ты пишешь выводит все как есть к примеру 4,43,432,2,12 и выводит а мне нужно чтоб так 4 43 432 2 12
PHP: $news=mysql_query('select * from `table` where id = "' . $id . '" ') or die (mysql_error()); $a = mysql_fetch_assoc($news); $id=$a['id']; $massiv=explode(',',$id); for($i=0;$i<=count($massiv);$i++){ echo $massiv[$i].'<br>'; }
Я бы хранил в отдельной табличке список вида [id_юзера,id_друга] и потом выборка из этой таблички при подготовке данных с лимитом необходимым. Суть в том, чтобы обрабатывать последовательно id френдов и добавлять к выводу/выводить результаты выборки.
Нахство вы выдумываете ребята. Сразу видно что нормальной практики явно не хватает 2 restart_05: Создавай такую таблицу: Code: user_ud | friend_id Где один кортеж (строка) - один друг. Т.е. допустим у человека 10 друзей - это будет 10 кортежей. Так же эти поля будут внешними ключами на таблицу с юзерами. Вышеприведенный в данном топике вариант имеет кучу недостатков, таких как аномалия удаления, вставки, изменения и тд и тп. Так же при такой структуре ни о какой согласованности в БД не может быть и речи. Со структурой, которую предложил я - легко работать. Делаешь элементарные запросы на выборку, вставку, удаление и тп, и спишь спокойно.
До тебя это описали,разницы никакой нет. А вот первый вариант несмотря на неудобство работы с ним, может оказаться быстрее, когда таблица разрастется.
Разницу во времени видим? Это написали в то время, когда я писал свой пост Я б тебя не взял на работу Представь ситуацию когда тебе надо удалить друга? Или акк друга удален, а тут он остался? (ни о каких ограничениях типа внешний ключ и тп при этой схеме не представляется возможным использовать). И с какого перепуга ты взял что оно будет быстрее работать? Из за меньшего количества кортежей? Смешно =) Это раз. А два - в том примере как я предложил это будут сплошные индексы... Выводы напрашиваются? Так же представь себе другой тип запроса. Например найти всех людей, у которых ты находишься в друзьях... представляешь как извращаться придется? То то же. Так что это вообще нежизнеспособно в мало мальски серьезном проекте.
Очень рад за тебя. Разучились со строками работать? А типа неудобно и прочее - так простой класс написать. cron + cleanup скриптик. выборка твоих друзей будет быстрее, это однозначно, а вот выборка у кого ты в друзьях будет намного медленее. я смотрю ты крутой дядька. Ну да, об этом я уже написал. Несогласен.( в данном премере конечно лучше не использовать этот вариант) Например в ситуации когда числа описывают какие-то настройки у пользователя(типа вкл,выкл) тогда наврятли тебе понадобится выбирать всех юзверей у кого включена та или иная опция,поэтому уместно использовать. Если создавать еще одну таблицу с опциями то количество запросов к базе увеличится,сама база разрастется, а твой проект загнется от 10к народу(представляешь сколько настроек может быть у одного пользователя?))) А теперь модераторов уже не учат за постами следить?