Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Ещё немножно php
#1
Во первых я бы хотел выразить огромную благодарность [URL="https://forum.zone-game.info/member.php?u=25920"]
AleBrider[/URL] Он очень сильно мне помог в разработке сайта.
Но тыкать его по каждому вопросу начинает быть стыдноSmile
Слегка внесу ясность что именно я делаю и в чём прошу у вас помощи.
Я делаю телефонную книгу для гостевых продюсеров.
Использую для контактов 1 таблицу form
Но появилась необходимость добавить ещё одну таблицу, categories
как понятно из названия там будут категории контактов.
И вот собственно суть вопроса.
Как мне какому либо контакту добавить какую либо категорию.

Допустим я вывожу в таблицу все записи из таблице form
Select * FROM form
далее массив в котором я вывожу
$data[FIO]
...
...
как мне вывести в мою форму контакта ещё информацию из другой таблицы,а потом и сделать фильтр где необходимо отобразить допустим FIO которое состоит в какой либо categories?
Если я непонятно обьяснил поправьте меня и задайте наводящие вопросы, я очень медленными шагами продвигаюсь в правильном направленииSmile
Спасибо всем кто прочёл и Огромное спасибо всем кто ответитSmile
Детям нельзя в интернет. От детей интернет тупеет.
Ответ
#2
я что-то с трудом понимаю, что именно нужно сделать.
Вытащить определенные данные из таблицы или связать таблицы в форме?
Ответ
#3
Вытянуть из таблицы я могу)
Не знаю как связать таблиц судя повсему.
Детям нельзя в интернет. От детей интернет тупеет.
Ответ
#4
В таблице form делаешь столбец int col_catID, создаешь таблицу categories в ней делаешь первым столбец col_catID интом, автоинкрементом pk потом в form создаешь внешний ключик на col_catID и цепляешь его к одноименному столбцу из categories. Делать все либо в phpmyadmin, либо в любом редакторе бд. Если нужны каскадные удаления, то соответственно выбираешь все в эдиторе (сам пользую dbforge)
Да, забыл, в таблице categories создаешь нужные поля (название и/или что нужно еще)

А в запросе цепляешь через where условие ( если вытягиваешь сразу из форм и категории, то учитывай момент, что если у тебя в форм ключик равен нулл, то надо юзать механизм join'ов, иначе выборка будет пустая)
Ответ
#5
Твинкера спроси, хоть он и вредничает иногда, но поможет с этим, а вообще просто в запрос добавтиь вторую таблицу, т.е.
form
id | fio | id_categories

categories
id_categories | categories

т.е. просто по id будете вытягивать данные, запрос сами составите? Т.е. вам нужно сопоставить значения от фио к значению от категории и вывести через echo
1
Ответ
#6
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 ? вот в чём вопрос))
Детям нельзя в интернет. От детей интернет тупеет.
Ответ
#7
Если делать по уму, то у него должна быть связь 1 категория ко многим фио. Если тс хочет делать фильтр, то ему ридется делать запрос из 2х таблиц по любому, что то вроде

Код:
Select form.*, categories.col_catName from form,categories where form.col_catID= categories.col_catID
Но в этом случае нужно следить, чтобы в форм катид не был нулл
Ответ
#8
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)
Вот такой вот запрос у меня получился, и при том работает как надо спасибо))
и мне кажется так и никакие таблицы связывать не надо
Детям нельзя в интернет. От детей интернет тупеет.
Ответ
#9
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/
1
Ответ
#10
xolseg Написал:Таблицы связываются через рефы, типа catid т.е. в двух таблицах должно быть по 1 столбику catid.
Т.е. при поиске допустим по ФИО в таблице form, подтягивается значение и из таблицы categories.

Хм.. добавил записи, действительно прокатил запрос... но вот что он мне дает?

Я ребят извиняюсь за своё недопонимание, я не по наслышке знаю что такое объяснять очевидные вещи, но что то до меня туго доходит этот вопрос.

Тот запрос что написали выше вроде как делает то что нужно без связи таблиц.

Я как раз тем примером и воспользовался)
Детям нельзя в интернет. От детей интернет тупеет.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)