Фактически Вы описали eav) Это должно решить проблему. Спасибо, что-то из головы вылетело) Хотя сразу возникает вопрос - а если появляется другая сущность, где также различные разбиения - тоже надо воссоздавать всю структура eav?
Вообще хорошую бы книгу найти по проектированию баз данных с примерами сложными)
Спасибо за ответ!
Как раз про нормальные формы и слышал. А про мое предложение - это из книги профессора правило - если у нас сущности разбивается на категории, то выделяем общие атрибуты, а для каждой категории создаем новую таблицу, в которой будут уникальные для каждой категории сущности атрибуты. Например, у нас есть сущность доставка. Можно выделить - самовывоз (адрес магазина) и доставка по адресу ( страна, город, ....) - как раз случай из правила выше. Значит будет три таблицы. Увы это из книги профессора и не поощряется выходить за рамки правил, так как будет за это "дрю-чить"))
Язык не имеет значения) В вашем ответе, в запросе есть "table_name" - но как раз этот table_name должен подставляться в зависимости от категории, то есть если $_GET['category_id'] = 1 , то table_name = native, если 2, то table_name = foreign и так далее. Поэтому в голову приходит только switch.
Вообще хотелось бы доставать всю информацию о писателе одним JOIN'ом)
Тогда в начале скрипта попробуйте объявить переменную $mat_v = $_POST['material_v'];
И там где вам нужно использовать эту переменную. Внутри скрипта она будет глобальной, то есть доступна везде. Также посмотрите, нигде не перетирается или удаляется переменная $_POST['material_v'].
Могц одно предположить - в if(isset)$_post['add_mat'] даже не заходит. Возможно в Post этой переменной вообще нет. Попробуйте вывести что либо в if(isset)$_post['add_mat']{ // вывести здесь} и после этого уже дальше можно попробовать.
Тут много ошибок, даже в первой части скрипт не запустится, так как минимум цикл не закрывается. Если поправить все синтаксические ошибки, то все должно работать.