- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть форма добавления объявления на сайт. Одновременно можно загрузить фотографии к объявлению. Загрузка происходит с пом. аякс.(тоесть фото и данные объявления - 2 отдельные формы)
Вопрос: Как наперед узнать Id объявления которое добавит юзер чтобы нормально загрузить фотографии? Вернее сохранить их с привязкой к айди объявления.
Как вариант можно узнать максимальный номер айди в базе, увеличить его на единицу, но что будет если в один момент времени несколько пользователей добавят объявления? (тоесть попутаются айди и фотографии будут выводится в чужом объявлении)
---------- Добавлено 23.04.2014 в 11:32 ----------
Идеальным вариантом видится при нажатии на кнопку добавить объявление вставлять в базу пустую запись и потом ее апдейтить. Так проблем не будет. Единственное, что написать крон, который бы чистли пустые записи если пользователь отказался или по каким-либо причнам не добавил объявления. Но этот вариант немного удет подгружать сервер.
Есть ли еще какие-то варианты хранения данных для выше описанной задачи, более изящные, что ли..?
создать объявление (ну или просто создайте пустую запись, потом обновляйте её), потом привязать фото к его ID, если фото загружаются до создания записи - держать их во временном буфере, откуда потом подвязать к записи.
т.е. загрузить фотографию, а потом записать её в БД никак?
можно отсюда подробнее?
---------- Добавлено 23.04.2014 в 11:43 ----------
Ну а как связать с самим объявлением если мы не знаем его айди в базе?
Ну а как связать с самим объявлением если мы не знаем его айди в базе?
😂 😂 😂
Фотография это не мистическая вещь. Она загружается на ваш хостинг и имеет название и даже может иметь название, которое вы ей задали. Потом это название вы и записываете в базу данных.
Если у вас отдельная таблица для фоток. Ну ок, добавляете объявление, считываете его ID, а потом забиваете таблицу с фотографиями по этому ID
можно отсюда подробнее?
обрабатываете загрузку фото, держите их имена в переменной, создаете запись в бд, попутно узнаете заветынй ID, привязываете фотки из переменной к этому ID
При заходе на объявление создавать пустую запись с ID, IP, Date.
При добавлении апдейтить запись с выборкой по IP и сортировкой по Date.
По крону каждый день вычищать пустые записи.
При заходе на объявление создавать пустую запись с ID, IP, Date.
При добавлении апдейтить запись с выборкой по IP и сортировкой по Date.
По крону каждый день вычищать пустые записи.
много ненужных движений, слишком "дорого" получается....и нет гарантий отсутствия коллизий в случае NAT
Загрузка происходит с пом. аякс.(тоесть фото и данные объявления - 2 отдельные формы)
При выдаче формы объявления - генерируйте уникальный хэш (например, по IP+время) и потом посылайте его в скрытом(hidden) поле обеих форм.
На стороне сервере при получении данных, если
- такого ХЭШа нет в таблице: вставляете запись(даже и пустую) и получаете её ID по mysql_insert_id()
- такой ХЭШ уже есть: получаете ID выборкой "SELECT Hash=" и апдейтите присланные данные в уже существующую запись
В любом случае, ID для загрузки фото будет известен, и все последующие AJAX-ы с аналогичным ХЭШ-ем будут апдейтить уже существующую запись.
Записи только с Фото и без текста самого объявления можно периодически чистить или просто не показывать на сайте.
SELECT Auto_increment AS ai FROM information_schema.tables WHERE table_name='%имя_таблицы%' AND table_schema = DATABASE() LIMIT 1
1) Заливаем фото с именем time() .rand()
2) Пишем в куку(к примеру) это имя
3) После добавления объявления получаем mysql_insert_id()
4) ну и ренейм файла.