| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > сгенерировать форму из таблицы |
| Автор: lifox 17.5.2008, 15:36 |
| Доброго всем дня. У меня есть страницы где должно сгенерироваться формы и есть таблицы `jeep` id int model varchar(45) god varchar(45) categor varchar(45) `ferrari` id int model varchar(45) god varchar(45) categor varchar(45) как сгенерировать ссылку из имени таблицы а по этой ссылке формы model varchar(45) god varchar(45) для заполнение т.е. на странице должна сгенерироваться ссылка `jeep` при нажатие на нее генерируется формы и если категория внедорожники то генериуется только категории внедорожники |
| Автор: Fortop 17.5.2008, 17:56 | ||||||
1. Все свои джипы и феррари храни в одной таблице.
2.
Все виды марок автомобилей ну а уж ссылки из этого массива построить - вообще задача тривиальная
|
| Автор: lifox 18.5.2008, 06:43 |
| Возможно если будет таблица `all_mashine` и делая выборку из нее по table_name делать ссылки и при нажатие на нее будет генерироваится формы `all_mashine` id int table_name varchar(45) categor varchar(45) `jeep` id int model varchar(45) god varchar(45) `ferrari` id int model varchar(45) god varchar(45) |
| Автор: MoLeX 18.5.2008, 07:34 |
| lifox, зачем тебе столько таблиц? пихай все в одну + индификаторы для машин используй. |
| Автор: lifox 18.5.2008, 08:10 |
| У таблиц будут разное количество поле |
| Автор: MoLeX 18.5.2008, 08:36 |
это почему же? ну даже и разное. допустим максимальное их будет 9, ферари займет 6, джип все 9. т.е. при выводи смотришь - аха такие-то поля пустые (NULL возратил запрос) значит их не надо трогать |
| Автор: lifox 18.5.2008, 09:06 |
| у меня на сайте эти таблицы генерируются каждая по отдельности и мне лучше будет сделать так. `all_mashine` id int table_name varchar(45) categor varchar(45) `jeep` id int model varchar(45) god varchar(45) `ferrari` id int model varchar(45) god varchar(45) а сама задача состоит в том чтобы на странице должна сгенерироваться ссылка `jeep`при выборке из таблицы `all_mashine` при нажатие на нее генерируется формы и если категория = внедорожники то генериуется только категории внедорожники. И как мне сделать эту выборку |
| Автор: Fortop 18.5.2008, 11:19 | ||||||
| lifox, Сколько, говоришь, у тебя будет видов машин? Понимаешь ли, если все это будет в одной таблице, то и запрос будет всего 1. С немного разными условиями. В твоем же случае, запрос прийдется писать на каждую таблицу. Более того логика построения БД такова, что одинаковые сущности (т.е. машины) должны все храниться в одной таблице. Применительно к той таблице, что я давал Все джипы
Все внедорожники. (и не важно Jeep, Nissan, Toyota) - будут выбраны именно все внедорожники.
Все внедорожники марки Jeep
А вот в твоем случае нужен будет такой же запрос только для каждой марки авто в отдельности... Добавлено через 1 минуту и 33 секунды lifox, и вообще, с каких делов у тебя Ferrari и Jeep должны иметь разное количество полей? Это тоже вопрос решаемый. Но ты объясни, почему у них должна быть разная структура? |
| Автор: lifox 18.5.2008, 11:41 |
| У меня таблицы автомобилей герерируются из XML файла, а файлы я получаю от разных людей и структура у них может быть разная. Стандарт начальный id int model varchar(45) god varchar(45) В одном файле может быть и поле цвета машины а в другом файле его и не добавят |
| Автор: lifox 18.5.2008, 11:55 |
| Хорошо тогда как можно сгенирировать формы из таблицы `jeep` id int model varchar(45) god varchar(45) |
| Автор: Feldmarschall 18.5.2008, 12:32 |
| Жесть какая. У тебя все неправильно спроектировано в принципе. Структура БД - это не та часть сайта, которой занимаются всякие левые сейлсы, присылая свои кривые файлы. |
| Автор: lifox 19.5.2008, 16:53 | ||
Как сгенирировать саму форму |
| Автор: Fortop 19.5.2008, 22:18 | ||
lifox,
Вот и вся форма |
| Автор: lifox 27.5.2008, 17:33 | ||
почему же, есть таблица `all_mashine` id int table_name varchar(45) categor varchar(45) нужно написать на нее один запрос |
| Автор: Fortop 27.5.2008, 19:24 |
| lifox, Ну-ну, покажи этот супер запрос SQL который позволит вытащить тебе информацию всю по jeep, к примеру. |
| Автор: lifox 28.5.2008, 14:14 |
| Мне не нужно вытаскивать инфу мне просто нужно сгенерировать форму Добавлено через 4 минуты и 21 секунду `table1` id pole1 pole2 pole3 `table2` id pole1 pole2 pole3 `table3` id pole1 pole2 pole3 и есть таблица `all_table` id table_name categor нужно прочитав таблицу `all_table` по полю table_name сгенерировать форму из таблицы. К примеру `table3` т.е нужно получить имя таблицы из `all_table`, к примеру `table3`. Потом по полученому имени ( если имя таблицы мы получили `table3` то форму нужно сгенеировать из `table3` id pole1 pole2 pole3)сгенерировать форму Из `all_table` я получаю имя таблицы. Но потом как по имени таблицы сгенеировать форму не знаю. |
| Автор: hhh 28.5.2008, 18:06 |
| Можно. Прочитайте имя из `all_table`, проверьте, что такая существует (получить список таблиц можно через mysql_list_tables), затем из таблицы получите список полей (mysql_list_fields). На основании этого стройте форму, перебрав все поля. |
| Автор: lifox 29.5.2008, 13:35 |
| $sql="SHOW COLUMNS FROM `table_name`"; $result=mysql_query($sql); $data = mysql_fetch_assoc($result); получив список полей как сгенеировать форму только не учитывая поле `id` и с условием если поле varchar, int, char и т.д. то форма генерируется type=text, если поле text и т.д. то форма генерируется <textarea> |