Сообщений: 684
Тем: 21
Зарегистрирован: May 2013
Репутация:
2,594
Во первых я бы хотел выразить огромную благодарность [URL="https://forum.zone-game.info/member.php?u=25920"]
AleBrider[/URL] Он очень сильно мне помог в разработке сайта.
Но тыкать его по каждому вопросу начинает быть стыдно 
Слегка внесу ясность что именно я делаю и в чём прошу у вас помощи.
Я делаю телефонную книгу для гостевых продюсеров.
Использую для контактов 1 таблицу form
Но появилась необходимость добавить ещё одну таблицу, categories
как понятно из названия там будут категории контактов.
И вот собственно суть вопроса.
Как мне какому либо контакту добавить какую либо категорию.
Допустим я вывожу в таблицу все записи из таблице form
Select * FROM form
далее массив в котором я вывожу
$data[FIO]
...
...
как мне вывести в мою форму контакта ещё информацию из другой таблицы,а потом и сделать фильтр где необходимо отобразить допустим FIO которое состоит в какой либо categories?
Если я непонятно обьяснил поправьте меня и задайте наводящие вопросы, я очень медленными шагами продвигаюсь в правильном направлении 
Спасибо всем кто прочёл и Огромное спасибо всем кто ответит
Детям нельзя в интернет. От детей интернет тупеет.
Сообщений: 240
Тем: 21
Зарегистрирован: Apr 2008
Репутация:
109
я что-то с трудом понимаю, что именно нужно сделать.
Вытащить определенные данные из таблицы или связать таблицы в форме?
Сообщений: 684
Тем: 21
Зарегистрирован: May 2013
Репутация:
2,594
Вытянуть из таблицы я могу)
Не знаю как связать таблиц судя повсему.
Детям нельзя в интернет. От детей интернет тупеет.
Сообщений: 604
Тем: 16
Зарегистрирован: Feb 2013
Репутация:
4,248
В таблице form делаешь столбец int col_catID, создаешь таблицу categories в ней делаешь первым столбец col_catID интом, автоинкрементом pk потом в form создаешь внешний ключик на col_catID и цепляешь его к одноименному столбцу из categories. Делать все либо в phpmyadmin, либо в любом редакторе бд. Если нужны каскадные удаления, то соответственно выбираешь все в эдиторе (сам пользую dbforge)
Да, забыл, в таблице categories создаешь нужные поля (название и/или что нужно еще)
А в запросе цепляешь через where условие ( если вытягиваешь сразу из форм и категории, то учитывай момент, что если у тебя в форм ключик равен нулл, то надо юзать механизм join'ов, иначе выборка будет пустая)
Сообщений: 3,354
Тем: 97
Зарегистрирован: Aug 2011
Репутация:
9,445
Твинкера спроси, хоть он и вредничает иногда, но поможет с этим, а вообще просто в запрос добавтиь вторую таблицу, т.е.
form
id | fio | id_categories
categories
id_categories | categories
т.е. просто по id будете вытягивать данные, запрос сами составите? Т.е. вам нужно сопоставить значения от фио к значению от категории и вывести через echo
Сообщений: 684
Тем: 21
Зарегистрирован: May 2013
Репутация:
2,594
08-15-2014, 09:23 AM
(Сообщение последний раз редактировалось: 08-15-2014, 09:24 AM Fudji.)
epmak Написал:В таблице form делаешь столбец int col_catID, создаешь таблицу categories в ней делаешь первым столбец col_catID интом, автоинкрементом pk потом в form создаешь внешний ключик на col_catID и цепляешь его к одноименному столбцу из categories. Делать все либо в phpmyadmin, либо в любом редакторе бд. Если нужны каскадные удаления, то соответственно выбираешь все в эдиторе (сам пользую dbforge)
Да, забыл, в таблице categories создаешь нужные поля (название и/или что нужно еще)
А в запросе цепляешь через where условие ( если вытягиваешь сразу из форм и категории, то учитывай момент, что если у тебя в форм ключик равен нулл, то надо юзать механизм join'ов, иначе выборка будет пустая) ON DELETE ON UPDATE Restrict ?
Добавлено через 1 минуту
xolseg Написал:Твинкера спроси, хоть он и вредничает иногда, но поможет с этим, а вообще просто в запрос добавтиь вторую таблицу, т.е.
form
id | fio | id_categories
categories
id_categories | categories
т.е. просто по id будете вытягивать данные, запрос сами составите? Т.е. вам нужно сопоставить значения от фио к значению от категории и вывести через echo Как связать kontakt_id с categories_id ? вот в чём вопрос))
Детям нельзя в интернет. От детей интернет тупеет.
Сообщений: 604
Тем: 16
Зарегистрирован: Feb 2013
Репутация:
4,248
08-15-2014, 09:31 AM
(Сообщение последний раз редактировалось: 08-15-2014, 10:50 AM epmak.)
Если делать по уму, то у него должна быть связь 1 категория ко многим фио. Если тс хочет делать фильтр, то ему ридется делать запрос из 2х таблиц по любому, что то вроде
Код: Select form.*, categories.col_catName from form,categories where form.col_catID= categories.col_catID
Но в этом случае нужно следить, чтобы в форм катид не был нулл
Сообщений: 684
Тем: 21
Зарегистрирован: May 2013
Репутация:
2,594
epmak Написал:Если делать по уму, то у него должна быть связь 1 категория ко многим фио. Если тс хочет делать фильтр, то ему ридется делать запрос из 2х таблиц по любому, что то вроде
[sql]
Select form.*, categories.col_catName from form,categories where form.col_catID= categories.col_catID [/sql]
Но в этом случае нужно следить, чтобы в форм катид не был нулл У меня вот такая проблема получается
PHP код: <?php
SQL-запрос:
ALTER TABLE `form` ADD FOREIGN KEY ( `col_catID` ) REFERENCES `test`.`categories` (
`col_catID`
) ON DELETE RESTRICT ON UPDATE RESTRICT ;
Ответ MySQL: Документация
#1452 - Cannot add or update a child row: a foreign key constraint fails (`test`.`#sql-ae6_129a1`, CONSTRAINT `#sql-ae6_129a1_ibfk_1` FOREIGN KEY (`col_catID`) REFERENCES `categories` (`col_catID`))
("SELECT form.*, categories.name FROM form,categories WHERE form.col_catID= categories.col_catID AND users_id = " . $users_id)
Вот такой вот запрос у меня получился, и при том работает как надо спасибо))
и мне кажется так и никакие таблицы связывать не надо
Детям нельзя в интернет. От детей интернет тупеет.
Сообщений: 3,354
Тем: 97
Зарегистрирован: Aug 2011
Репутация:
9,445
Fudji Написал:У меня вот такая проблема получается
PHP код: <?php
SQL-запрос:
ALTER TABLE `form` ADD FOREIGN KEY ( `col_catID` ) REFERENCES `test`.`categories` (
`col_catID`
) ON DELETE RESTRICT ON UPDATE RESTRICT ;
Ответ MySQL: Документация
#1452 - Cannot add or update a child row: a foreign key constraint fails (`test`.`#sql-ae6_129a1`, CONSTRAINT `#sql-ae6_129a1_ibfk_1` FOREIGN KEY (`col_catID`) REFERENCES `categories` (`col_catID`))
("SELECT form.*, categories.name FROM form,categories WHERE form.col_catID= categories.col_catID AND users_id = " . $users_id)
Вот такой вот запрос у меня получился, и при том работает как надо спасибо))
и мне кажется так и никакие таблицы связывать не надо
Таблицы связываются через рефы, типа catid т.е. в двух таблицах должно быть по 1 столбику catid.
Т.е. при поиске допустим по ФИО в таблице form, подтягивается значение и из таблицы categories.
Вот тут пример неплохой: http://folkprog.net/sozdanie-svyazey-phpmyadmin/
Сообщений: 684
Тем: 21
Зарегистрирован: May 2013
Репутация:
2,594
xolseg Написал:Таблицы связываются через рефы, типа catid т.е. в двух таблицах должно быть по 1 столбику catid.
Т.е. при поиске допустим по ФИО в таблице form, подтягивается значение и из таблицы categories.
Хм.. добавил записи, действительно прокатил запрос... но вот что он мне дает?
Я ребят извиняюсь за своё недопонимание, я не по наслышке знаю что такое объяснять очевидные вещи, но что то до меня туго доходит этот вопрос.
Тот запрос что написали выше вроде как делает то что нужно без связи таблиц.
Я как раз тем примером и воспользовался)
Детям нельзя в интернет. От детей интернет тупеет.
|