[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выборка фото из БД
Эли4ка
Ребята можете по действиям(код не надо..попробую сделать сама) как мне выбрать из базы фото только одного пользователя..например при заходе в его профиль показывает его добавленные фото..а то я немного запуталась..только желательно поподробней..



Спустя 2 минуты, 4 секунды (12.10.2011 - 12:39) redreem написал(а):
для этого надо знать механизм добавления фоток. где хранятся фотки, где хранятся ссылки на них. как привязаны ссылки к пользователю.

Спустя 8 минут, 41 секунда (12.10.2011 - 12:48) Draftpad написал(а):
Эли4ка, изначально при загрузке фотографий пользователем, в дополнительном поле базы отмечать идентификатор этого пользователя. Потом при загрузке странички с его профилем, брать ID пользователя и делать выборку в базе именно по нему.

Если не особо понятно, могу более подробно расписать.

Спустя 21 минута, 46 секунд (12.10.2011 - 13:10) Эли4ка написал(а):
Draftpad
распишите пожалуйста если Вам не трудно..

Спустя 9 минут, 6 секунд (12.10.2011 - 13:19) alex12060 написал(а):
Эли4ка

Да не трудно же.

1. Регистрация. При регистрации каждому пользователю присваивается уникальный идентификатор (числовой, символьный, без разницы).

2. Добавление. После входа на сайт, у пользователя хранится в куке или сессии этот ID, и после добавления фоток, запихиваем в БД значения:

- id (ид фото)
- user (логин или ID пользователя)
- описание
...

3. Вывод. Ну а вывод фоток прост. Просто пишешь в условие WHERE `login` = 'user_lol' и сортируешь как надо, или нет и будут фотки, которые принадлежат юзеру user_lol.

Ясно же?

Спустя 1 минута, 14 секунд (12.10.2011 - 13:20) Эли4ка написал(а):
я таблицы правильно оформила?
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(15) NOT NULL default '',
`password` varchar(255) NOT NULL default '',
`avatar` varchar(255) NOT NULL default '',
`email` varchar(255) NOT NULL default '',
`activation` int(1) NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`id`)
)
TYPE=MyISAM AUTO_INCREMENT=41 ;


CREATE TABLE `foto` (
`id` varchar(255) NOT NULL auto_increment,
`name` varchar(255) NOT NULL default '',
`text` MEDIUMTEXT(16777215) NOT NULL default ,
`date-add` datetime NOT NULL default '0000-00-00 00:00:00',
)
TYPE=MyISAM;

Спустя 11 минут, 13 секунд (12.10.2011 - 13:31) alex12060 написал(а):
Эли4ка

Я бы еще добавил для фотки title, привязки к логину не вижу.


CREATE TABLE `foto` (
`id` varchar(255) NOT NULL auto_increment,
`uid`, int(10) NOT NULL,
`title` varchar(255) NOT NULL default '',
`text` MEDIUMTEXT(16777215) NOT NULL default ,
`date-add` datetime NOT NULL default '0000-00-00 00:00:00',
)
TYPE=MyISAM;


А еще, вот здесь глупо:


`id` int(11) NOT NULL auto_increment,


Во первых, я уверен, что на твоем сайте не будет больше 9 млрд человек + максимально-допустимое значение int - 2**32 = 4 294 967 296.

Спустя 8 минут, 36 секунд (12.10.2011 - 13:40) Эли4ка написал(а):
alex12060
первое понятно а вот второе не очень..

Спустя 10 минут, 15 секунд (12.10.2011 - 13:50) Draftpad написал(а):
Эли4ка, не совсем корректный тип поля в базе, у типа integer есть ограничение, при достижении которого новые пользователи в базу добавиться не смогут.
Можно взять тип BIGINT, у него ограничение во много раз больше

Спустя 8 минут, 39 секунд (12.10.2011 - 13:59) Эли4ка написал(а):
Draftpad
ага..хорошо..но у меня почему в таблице foto ошибку пишет..можете ресурс дать где описано как такие таблицы составлять правильно..а так же операторы мускул..а то мне поисковики все какое-то левое выдает..

Спустя 25 минут, 58 секунд (12.10.2011 - 14:25) alex12060 написал(а):
mysql.ru

Там мануал не плохой.
А конкретно какие ошибки выдает то?

Спустя 19 часов, 2 минуты, 49 секунд (13.10.2011 - 09:28) Эли4ка написал(а):
alex12060
syntax error

Спустя 55 минут, 18 секунд (13.10.2011 - 10:23) bodja написал(а):
Эли4ка
создайте юзеру директорию ,и сливайте все его фото туда,
в таблице `users` просто добавте директорию ,которая ему принадлежит.
или вообще ничего не добавляйте ,название директории = id юзера.

Спустя 46 минут, 35 секунд (13.10.2011 - 11:10) Игорь_Vasinsky написал(а):
Цитата
`activation` int(1) NOT NULL default '0',


для этого я бы отдельную таблицу создал, создавал быстроку после регистрации и после активации бы строку удалял, зачем её хранить то.

и не int. я бы собирал из даты+логин+пароль и всё в md5 или sha1 -чтоб запутанней было.

Спустя 37 минут, 31 секунда (13.10.2011 - 11:47) Эли4ка написал(а):
Игорь_Vasinsky
хорошо попробую..

Спустя 4 часа, 17 минут (13.10.2011 - 16:04) linker написал(а):
Draftpad
Тип INTEGER позволяет иметь числа от 0 до 4294967296 без знака или от -2147483648 до +2147483647. Даже если предположить, что на сайте у Эли4ка будет столько же пользователей как и на фейсбуке, то всёравно остаётся двойной, а то и более, запас. Поэтому нахрена тут BIGINT - не понятно, тут вообще сойдёт SMALLINT можно без знака.

Спустя 16 часов, 46 минут, 45 секунд (14.10.2011 - 08:51) Эли4ка написал(а):
linker
biggrin.gif biggrin.gif и при таком кол-ве пользователей БД будет тормозить страшно..скорее всего..даже с репликацией..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.