|
|
|
| Здрасьте, помогите плиз разобраться с такой темой:
Есть таблица из базы данных (Данные в бд были занесены из файла CSV - и уже находятся там.) структура ее такова:
ID Район Улица № дома Площадь Цена (общее количество записей ID = 30)
необходимо добавить ещё один столб ФОТО т.е. что бы таблица имела вид:
ID Район Улица № дома Площадь Цена ФОТО
и при нажатии на фотографию первой строки открывалось окно (отдельное) в котором три фотки IMG1 IMG2 IMG3, соответственно при нажатии на вторую строку IMG4 IMG5 IMG6, на третью - IMG7 IMG8 IMG9 и т.д
Вопрос в следующем как сделать новую таблицу с 3мя полями IMG1 IMG2 IMG3 в которой будут ссылки на фотографии лежащие на сервере в папке IMG (под именами IMG1 IMG2 IMG3...IMG30) как мне запихать в БД эти ссылки если фотки уже лежат на сервере.
Есть мысль:
через форму на странице (которую будут заливаться фотки на серв одновременно прописывать путь в БД)
но думаю есть вариант попроще - если да то подскажите плиз (кодом уже голова пухнет как его реализовать).
а дальше я буду связывать 1ну таблицу (с данными) с таблицей фоток по полю ID если я не прав поправьте.
За ранее спасибо! | |
|
|
|
|
|
|
|
для: P750
(19.09.2009 в 12:44)
| | Не надо добавлять столбец ФОТО. Не делают в таблицах полей IMG1 IMG2 IMG3 и подобных.
Нужно создать таблицу photos со столбцами id_photo, id_obj, path и возможно pos.
А уж как заполнять её, зависит от того, где сейчас имеется информация о соответствии фотографий объектам первой таблицы.
Если только в чьей-то голове, и неохота через phpMyAdmin данные заносить, то придется писать скрипт. | |
|
|
|
|
|
|
|
для: Trianon
(19.09.2009 в 12:57)
| | Быстро и оперативно СПС ОГРОМНОЕ!
Да на самом деле находится все в голове, просто таблицу делал не я, мне лишь надо прикрутить к ней фотки и как это сделать я понимаю лишь только теоретически, и то сомнительно, просто методом логики вижу возможность объединить их по одинаковому полю (ID в моем случае). Если я правильно понял столбцы в таблице photos такие как id_photo id_obj path соответствуют номеру фотографии, номеру объекта на сервере и пути к нему я правильно понял ? для меня главное разобраться как организовать "запихивание" фоток в бд (точнее пути к фоткам). Если не трудно помогите разобраться. | |
|
|
|
|
|
|
|
для: P750
(19.09.2009 в 13:12)
| | Перед тем, как начать их "запихивать", нужно в голове держать и то, как Вы их будете "выпихивать"... сопоставить эти две "фазы", и после этого всё делать... | |
|
|
|
|
|
|
|
для: P750
(19.09.2009 в 13:12)
| | столбец photos.id_photo является первичным ключом новой таблицы.
столбец photos.id_obj - чужой ключ , соответствует objects.ID (первичному ключу ID Вашей таблицы objects)
столбец path хранит имя файла с фотографией
столбец pos может быть использован для создания порядка в наборе картинок объекта.
имя файла хранится как обычная строка. тип VARCHAR | |
|
|
|
|
|
|
|
для: Trianon
(19.09.2009 в 15:53)
| | Вот благодаря такому пояснению теперь мне понятно как будет у меня таблица фоток взаимодействовать с таблицей данных, тока вот как все таки мне организовать "запихивание путей к фоткам" в базу. Я понимаю что это будет скрипт и не прошу за меня его делать я просто лишь прошу толкнуть меня на путь истинный некоторыми может быть мануалами или советами как, с чего все таки начать это "запихивание"
Пы. сы. за ранее спс ! | |
|
|
|
|
|
|
|
для: P750
(19.09.2009 в 19:08)
| | >с чего все таки начать
можно начать с того что выбрать подходящий синтаксис SELECT например из справки
mysql> HELP INSERT
Syntax:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
Or:
INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name
SET col_name={expr | DEFAULT}, ...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
Or:
INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE]
[INTO] tbl_name [(col_name,...)]
SELECT ...
[ ON DUPLICATE KEY UPDATE
col_name=expr
[, col_name=expr] ... ]
INSERT inserts new rows into an existing table. The INSERT ... VALUES
and INSERT ... SET forms of the statement insert rows based on
explicitly specified values. The INSERT ... SELECT form inserts rows
selected from another table or tables. INSERT ... SELECT is discussed
further in [HELP INSERT SELECT].
URL: http://dev.mysql.com/doc/refman/5.1/en/insert.html
|
Потом обдумать когда в скрипте ,где будет формироваться такой запрос, нужно или не нужно вставлять в таблицу данные и сохранять на диске файлы
И останется только подумать как-бы не вставить или не сохранить чего-нибуть что не запланированно сохранять и вставлять, или о том что место на диске , и особенно в одном и том-же каталоге не должно заполниться слишком огромным колличеством файлов. | |
|
|
|
|
|
|
|
для: heed
(20.09.2009 в 00:03)
| | что место на диске , и особенно в одном и том-же каталоге не должно заполниться слишком огромным колличеством файлов.
а можно прокомментировать этот момент | |
|
|
|
|
|
|
|
для: P750
(19.09.2009 в 12:44)
| | Разобрался как залить фотки на сервер, и пути их прописать в бд, все работает отлично. теперь у меня есть таблица с фотами, и есть текстовая таблица.
основная таблица вида:
ID Район Улица № дома Площадь Цена
и есть таблица фоток:
ID_photo Name Path Pos
Из этого всего мне необходимо сделать следующее: в основную таблицу добавить новый столб что бы выглядела так:
ID Район Улица № дома Площадь Цена ФОТО
котором на против каждой записи разместить иконку (домик) и при нажатии на нее открывается др окно на котором расположены 3 фотографии из таблицы PHOTO (т.е. вторая таблица), соответственно если первая строка - то первые три фотки (pic1 pic2 pic3) вторая строка - следующие три фотки (pic 4 pic5 pic6) и т.д
Помогите плиз, если честно не знаю даже с чего старт взять....
Пы.сы. не пинайте сильно, изложил как могу.
Пы. пы. сы За ранее спасибо! | |
|
|
|
|
|
|
|
для: P750
(26.09.2009 в 16:40)
| | А где у Вас столбец id_obj во второй таблице? | |
|
|
|
|
|
|
|
для: Trianon
(26.09.2009 в 17:46)
| | опа а такого у меня нету, и как его заносить ? ( разве не получится например связать по общему столбу ID он же в обеих таблицах) ? | |
|
|
|
|
|
|
|
для: P750
(27.09.2009 в 19:03)
| | > и как его заносить ?
а остальные данные как заносили? Так и его.
>( разве не получится например связать по общему столбу ID он же в обеих таблицах) ?
ID'ом обычно называют суррогатный первичный ключ (очень грубо говоря - неизменяемый последовательный номер добавления записи) который в таблицах с разным количеством строк одинаковым быть не может физически.
Если Вы имеете в виду под ID что-то другое - это нужно явно пояснять.
Наконец, упреждая заявление, что во второй таблице ID, чужой ключ, ссылающийся на первичный ключ первой таблицы, скажу сразу, что вообще без первичного ключа оперировать данными в таблице крайне неудобно.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Trianon
(27.09.2009 в 19:25)
| | а остальные данные как заносили? Так и его.
> остальные данные заносил следующим образом (вообще не я но систему понял) есть скрипт который из файла csv заносит в цикле данные в таблицу и потом выводит ее.
Что касается как я заносил фотки: - создал форму отправки файла на серв и в этой форме одновременно прописывается путь в БД (смотрел как это реализовано в скрипте "фото-галерея" и по образу и подобию разобравшись сделал так же.
Что касается ID так и есть - неизменяемый последовательный номер, а если например связать по полю POS (позиция) ? или например поступить другим образом в момент закачки фотки на серв и прописки путей в бд добавить новый столб id_obj (который и будет связан со старой таблицей) ммм т.е. примерно так ID в старой таблице = ID_obj в новой соотв-но значение 1 (в таблице) будет равно значению 1 фотки 2, 2й фотке и т.д. верно мыслю или нет ? | |
|
|
|
|
|
|
|
для: P750
(28.09.2009 в 12:42)
| | Up | |
|
|
|