"Бронирование" auto_increment

JIEXA

Новичок
"Бронирование" auto_increment

Ситуация:
Для каждого поста юзеры могут загрузить бесконечное кол-во файлов, эти файлы потом отображаються так:



Все картинки всех юзеров лежат в одной папке, а чтобы вывести определенному юзеру только его картинки из всех, я добавляю перед именем каждой картинке прификс номер_ (вместо "номер" - ID поста которому пренадлежат картинки)

Но из-за этого номер приходиться создавать "пошаговое" обавление поста: то есть юзер сначало вводит заголовок, запись добавляеться в БД и потом уже на шаге 2 юзер загружает картинки, недостатки:
1. Добавление в 2 шага загрезняет БД не нужными записями, то есть юзер начал добавлять новость, прошел первый шаг, а на втором шаге закрыл окно..
2. Приходиться создавать лишнее поле в таблице, которое содержит либо Y либо N (Y - новость полностью добавлена, N-новость создана, но на шаг 2 не завершен.

Вот решил спросить у вас совета, как мне обойти эту ситуацию... Возможно в MySQL есть что-то типа "бронирования"? - это сразу было бы другое дело... Или если нету такого, то может есть у кого-нить более элегантное решение для решения этой задачи? Заранее спасибо.
 

Фанат

oncle terrible
Команда форума
А почему нельзя одновременно ввести и заголовок и картинку за один шаг?
 

JIEXA

Новичок
Наверное забыл добавить: дело в том, что добавление id поста к каждой картинке, нужно для того чтобы при редактирование поста, выводились все картинки загруженные к нему. А как вы за один шаг получите уникальный индетификатор поста?
 

Фанат

oncle terrible
Команда форума
да хоть 10 картинок.
я не понял, в чем проблема-то?
человек пишет пост. может прикрепить к нему картинки.
при этом форма может быть трех видов
без поля для картинок вообще - вводятся на следующем шаге
с полем для одной картинки - остальные вводятся после
с полем для 10 картинок

так вот в какой из них у тебя не получается получить id - я не понял!

добапвляет человек пост или картинки? если пост, то он сам по себе нужен ведь, какая проблема, если картинок с ним не будет?
 

fixxxer

К.О.
Партнер клуба
>2. Приходиться создавать лишнее поле в таблице, которое содержит либо Y либо N (Y - новость полностью добавлена, N-новость создана, но на шаг 2 не завершен.

чем это решение плохо?
 

JIEXA

Новичок
Фaнат, ты не понял.
Ты вводишь заголовк поста, текст, загружаешь к нему несколько картинок, добавляешь. Все гуд. Потом тебе вдруг приспичило отредактировать пост, и тебе нужен список всех твоих загруженных картинок к этому посту. А как ты из всей папки, в которой лежат картинки ВСЕХ постов, вытащищешь те картинки, что пренадлежат текущему? Для этого к кажжой картинке добавляеться проификс, например 12313_название_картинки.jpg И потом при выводе всех картинок для определенного поста, проверяем если номер поста равен номеру прификса картинки, то значит она пренадлежит этому посту. В качестве номера, используеться ID поста, но чтобы получить его, нужно добавить в БД пустую запись.. а этого делать не хочеться. Ищеться решение.

-~{}~ 28.09.07 19:54:

fixxxer, это решение создает много лишних проблем... Если бы оно подходило, я бы не создавал топик
 

JIEXA

Новичок
Нет, в форму вводишь. Чтобы получить айди нужно добавить в БД запись ДО загрузки картинок, а это уже получаеться в два шага. Поэтому хочеться найти решение "брнонирования" ID без добавления записи
 

Фанат

oncle terrible
Команда форума
Мля. Ты русским языком можешь разговаривать?
после формы они в базу попадают? какая проблема взять айди?!

твое поле в таблице, которое содержит либо Y либо N - это и есть бронирование.
 

JIEXA

Новичок
после формы они в базу попадают? какая проблема взять айди?!
Так ведь картинки загружать надо ДО добавления в базу

твое поле в таблице, которое содержит либо Y либо N - это и есть бронирование.
Вообще то я написал, что этот способ меня не устраевает и я ищу альтернативу
 

Андрейка

Senior pomidor developer
Так ведь картинки загружать надо ДО добавления в базу
зачем? или почему? тебе надо или какие-то ограничения на порядок в пхп существуют? просто уточняю, ибо непотяно что ты имел в виду
 

JIEXA

Новичок
Попробую объснить еще раз
Сейчас сделано так:
1. Шаг(1) Вводим заголовок поста в форму, он добавляеться в БД, с параметром news_done = N
2. Шаг(2) Открываеться следующая страница, там вводим текст, дальше загружаем картинки, они сохарняються в общую папку, и название у них становиться idпоста_название_картинки.jpg, все загруженные картинки отображаються в таком
виде.
3. Жмем "сохранить", новость заноситься в БД и параметр news_done меняет значение на Y.

Но этот вариант не устраевает тем, что а) в БД попадают "незаконченные" новости, б) при выводе новостей в WHERE добавляеться лишний парамерт news_done='Y' что сказываеться на производительности, даже при использовании индексов. Вообщем спосмоб не идеальный. Вот я ищу вариант, как избавиться от этой промежуточной записи в БД, которая создаеться между шагом 1 и 2
 

Фанат

oncle terrible
Команда форума
почему нельзя объединить шаги 1 и 2?
я правильно понимаю, что у тебя имеется 2 формы, в одной из которых только одна строка, а другой - все остальное? Какой смысл так дебильно разделять ввод новости?
почему нельзя все вместе ввести одновременно?

-~{}~ 28.09.07 20:41:

что сказываеться на производительности, даже при использовании индексов
лапшу на уши вешать на надо. хорошо?
 

JIEXA

Новичок
> лапшу на уши вешать на надо. хорошо?
так и знал что предеретесь

> почему нельзя объединить шаги 1 и 2?
я что на китайском пишу что ли? если я объеду в один шаг и уберу постую запись, то каким макаром я получу id который буду подставлять в название каждой картинке?!
 

kruglov

Новичок
JIEXA
Вставили запись, получили mysql_insert_id, обработали $_FILES... Где проблемы-то?
 

JIEXA

Новичок
Моя вина, не пояснил ещё один момент: картинки загружаються не во время нажатия кнопки "сохранить" а через iframe. То есть сначало человек может загрузить, потом вставить все картинки в textarea с текстом поста.. а только потом сохраняет пост..
 

Mols

Новичок
Можно создать например каталоги для временного хранения файлов, основываясь на ИД пользователя(для каждого пользователя будет постоянный каталог). Туда загружать файлы (временно). потом когда придёт пост переместить их в общий каталог получив при этом ИД поста... ну и использовать его.. этот ИД поста как и ранее.
Можно будет сделать чистилку для этих "временных" каталогов... которая будет делетить "незавершенные" новости...

А вообще - очень корявенько это всё выглядит.
 
Сверху