Если вы можете изменить структуру базы данных, я бы сделал следующее:
Поскольку каждая галерея может иметь несколько изображений и каждое изображение может находиться в нескольких галереях, у вас есть отношение многие ко многим.
Таким образом, у вас есть 3 таблицы, первая из которых содержит галерею, с первичным ключом galleryId и дополнительными полями для информации о галерее (если у галерей есть имена, например, поле имени), тогда у вас есть таблица изображений с imageId и вся информация об изображении, а затем у вас есть третья таблица с двумя полями: galleryId и imageId.
Так что, если изображение 5 должно перейти в галерею 7, вы должны ввести 7 и 5 в таблицу отношений.
чтобы получить все изображения для галереи 7, вы должны запустить что-то вроде
SELECT * FROM images i LEFT JOIN galleryImages gi ON gi.imageId = i.imageId WHERE gi.galleryId=7
, где galleryImages - таблица отношений.
Аналогично, чтобы удалить изображение из галереи, просто удалите строку в таблице отношений.
Одна вещь, на которую вы могли бы обратить внимание, это проверить, есть ли еще записи для изображения в таблице отношений при удалении его из галереи. или, другими словами, проверьте, используются ли изображения в каких-либо галереях, если нет, удалите также запись из таблицы изображений, в противном случае у вас может появиться много ненужных записей изображений, которые больше не нужны.
надеюсь, это поможет кое-что прояснить.