PHP

Нужна помощь c запросами и базой данных, PHP, MySQL

Здравствуйте, уважаемые знатоки.
Прошу помощи с довольно интересной проблемой
Делаю проект, сайт для диагноза заболеваний
Сайт устанавливает диагноз методом тестов
Из базы данных выводятся критерии в виде кнопок radio (ну или checkbox) при этом существует несколько страничек тестирования (1ур 2ур 3ур) смысл в том чтобы когда я выбираю критерий первого уровня выводились критерии второго уровня для всех критериев первого с аналогичным именем и тд Например критерий 1ур: голова, в базе существует несколько записей с таким же критерием и из нее выводятся все критерии 2ур для первого критерия: Голова
Также существует страница администратора, в которой реализована система форм и отправки в базу
База реализована в виде одной таблицы с полями (id, sex, age, test_1, test_2, test_3, article)
Все новые записи в базе будут выводится в виде соответствующих кнопок (Повторюсь)
Суть вопроса заключается в: Можно ли реализовать ресурс таким образом, чтобы запрос был динамическим и формировался исходя из выбранного поля? И как:?
К примеру я решил добавить в базу инопланетный вирус с такими критериями: Спина, левая лопатка, выросла рука. Для подобного пункта мне пришлось бы писать новый запрос, но можно ли сделать так чтобы динамически с считывать первый критерий, сравнивать с базой и выводить второй, третий и тд???
Может быть имеет смысл реорганизовать базу данных?
Спасибо за внимание, и прошу прощение за столь запутанные пояснения
Baдим Moлoдeц
Baдим Moлoдeц
461
То есть сейчас у вас все сделано в одной таблице, а вы хотите реорганизовать базу данных так, чтобы первая таблица были болезни первого уровня (спина, голова), вторая таблица - 2 уровень и так далее, правильно понял?

Тогда сделать таблицу test_1 с полями id и name, таблицу test_2 с полями id, name, parent и тоже самое в таблице test_3.
Выводите сначала первую страницу тестирования (SELECT id, name FROM test_1) в виде radio или checkbox. При этом каждый элемент списка будет иметь id, соответствующий записи.

После отправки формы вы получаете выбранный id и на его основе выводите элементы уровня 2 (SELECT id, name, parent FROM test_2 WHERE parent={$id_parent}) и по аналогии сделать третий уровень.

Описал в общем виде.
Максим Федюнин
Максим Федюнин
97 063
Лучший ответ
Когда каждый критерий второго уровня имеет единственного родителя первого уровня (и т. д.), то это называется "отношение (связь) один-ко-многим" и описывается в любом приличном учебнике реляционных баз данных (впрочем, достаточно сделать запрос в google).

Когда критерий второго уровня может иметь нескольких предков первого уровня, а критерий первого уровня - несколько потомков второго уровня, это называется "отношение (связь) многие-ко-многим" и описывается в тех же учебниках (и в том же google).
Baдим Moлoдeц Благодарю, я совсем забыл про такой тип связи (((
А нужно было пары не прогуливать!
Динамически без перезагрузки страницы - AJAX на php-файл с обработчиком, который в зависимости от переданных параметров выберет что нужно и вернет назад
И имхо одной таблицы для такого проекта маловато
Anton Shibenkov
Anton Shibenkov
61 430
Baдим Moлoдeц Спасибо, а не могли бы вы по подробнее объяснить сам код или же дать ссылку на информационный ресурс чтобы я смог разобраться?