Можно одним запросом сделать так, что если в таблице ads_foto нет записи с конкретным id_ads, то в таблицу
ads в ячейку foto ыбло внесено изменение foto = ""?
WHERE ads.id = ads_foto.id_ads AND ads_foto.id_ads = 8
)
LIMIT1
С помощью этого запроса в поле foto таблицы ads вносится изменения на основании полученных данных из таблицы ads_foto. Если есть фото к объявлению (таблица ads_foto) , то в таблицу ads вносится соответствующая запись. Связь ads.id = ads_foto.id_ads.
Можно одним запросом сделать так, что если в таблице ads_foto нет записи с конкретным id_ads, то в таблицу
ads в ячейку foto ыбло внесено изменение foto = ""?
Данная ячейка изначально может быть, как заполненной , так и пустой.
Надеюсь, что объяснил понятно.
Заранее выражаю благодарность за оказанное содействие
При следующем удалении уже добавляются два класса info_success и info_warning.
сколько запросов уходит в данном случае?
как бы один. Я тоже про это думал. Класс info_warning добавляется при возникшей ошибке, т.е. можно предположить, что имели место два запроса. При втором запросе объявления уже нет, т.к. оно было удалено при первом и поэтому выдает ошибку, но дело в том, что текст инфосообщения такой, который должен быть при удачном удалении
Кратко о работе. Аяксом отправляется id объявления в обработчик.
При успешной обработке объявление исчезает и появляется инфо окно - функция createInfoMessage. Она принимает три параметра (тип уведомления, текст и время показа.
Тип определяет цвет фона окошка (success, warning). Вот эта строка, в которой инфоокну добавляется класс (info_success или info_warning) (4 СТРОКА)
После скрытия окна класс и текст удаляются.
Проблема. При удалении первого объявления инфоокно правильное (передается success) и, соответственно, добавляется правильный класс info_success. При следующем удалении уже добавляются два класса info_success и info_warning.
Немного усложняется задача. Имеется таблица users (id-идентификатор). Данная таблица связана только с таблицей declarations (в которой есть поле id_user)/ Как уже писал выше, в свою очередь таблица declarations связано с другими таблицами посредством id_ads (идентификатор объявления).
Задача удалить одним запросом запись о пользователе . При наличии объявлений и фото к ним удалить записи в других таблицах, указанных в первом посте.
Есть таблица с объявлениями - declarations (идентификатор объявлений - id).
Задача- удалить, например, какое-то конкретное объявление.
Помимо этой таблицы, имеются другие таблицы, связи которых с таблицей declarations осуществляется через поля id_ads.
- foto_ads; // фото к объявлениям
- ads_views; // просмотры объявлений
- ads_violations; // жалобы на объявления
- reset_views // сведения об обнулении счетчиков просмотров объявлений.
Как уже сказал выше в каждой из этих таблиц имеются поля - id_ads, связывающие их с основной таблицей.
Когда все создавал, то удалял путем запросов DELETE к каждой из этих таблиц.
Хочу сделать более оптимизировано с помощью одного запроса. Погуглил и вот, что получилось:
DELETE declarations, foto_ads, ads_views, ads_violations, reset_views // указываю все таблицы, включая и основную - declarations
FROM declarations
LEFTJOIN foto_ads
ON foto_ads.id_ads = declarations.id
LEFTJOIN ads_views
ON ads_views.id_ads = declarations.id
LEFTJOIN ads_violations
ON ads_violations.id_ads = declarations.id
LEFTJOIN reset_views
ON reset_views .id_ads = declarations.id
WHERE declarations.id =1000;
Вопрос: правильный ли синтаксис? и нужно ли после оператора DELETE указывать, помимо связанных с главной таблицей declarations, и саму эту главную таблицу? Или ее нужно указывать только после конструкции FROM ?
Заранее выражаю благодарность за оказанное содействие..