[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP + Mysql
Гость_Евгений
Доброго времени суток!

В ячейке хранятся идентификаторы необходимых предметов через запятую.

На странице получаю через GET id предмета. И вот нужно выбрать из первой таблицы строки, где в вышеуказанном поле содержится такой id.

То есть допустим в первой таблице есть строка и в ней поле со значением 1,2,4,5,6.
Мне нужно ее выбрать т.к. через get id=5.

Есть ли вариант не доставать сначала значение это поля как массив и не искать потом совпадение каким нибудь inarray() или что - то типо того.



Спустя 3 минуты, 33 секунды (29.01.2012 - 19:24) Игорь_Vasinsky написал(а):
получил строку
explode(',', $row)
in_array()

Спустя 36 секунд (29.01.2012 - 19:24) Гость_Евгений написал(а):
Все таки придется? ))

Спустя 1 минута, 52 секунды (29.01.2012 - 19:26) Игорь_Vasinsky написал(а):
просто не правильно организована БД. не зачем так данные хранить. Достаточно было создать вспомогательную талицу

Спустя 1 минута, 23 секунды (29.01.2012 - 19:28) Гость_Евгений написал(а):
Можно чуток подробнее?

Спустя 1 минута, 13 секунд (29.01.2012 - 19:29) Игорь_Vasinsky написал(а):
покажи структуру БД - просто - одну строку с названиями столбцов и значениями

Спустя 5 минут, 36 секунд (29.01.2012 - 19:34) Гость_Евгений написал(а):
user posted image

Я делал через запятую, если несколько магазинов надо добавить к одному товару

Спустя 3 минуты, 14 секунд (29.01.2012 - 19:38) Игорь_Vasinsky написал(а):
добавляешь ещё одну таблицу

id | id_shop | shop

id - понятно
в shop пишешь свои цифры
в id_shop - идентификатор к которому они принадлежат.

т.е.

ID | ID_SHOP | DIGITS (или как там у тя)
1 | 1 | 1
2 | 1 | 3
3 | 3 | 9

и т.д.

потом просто запрос в 2 таблицы делать

gjnjv

Спустя 2 минуты, 4 секунды (29.01.2012 - 19:40) Rand написал(а):
Гость_Евгений
Вам нужно почитать про такую штуку, как "нормальные формы":
http://ru.wikipedia.org/wiki/%D0%9D%D0%BE%...%80%D0%BC%D0%B0
В данном случае, при проектировании БД была нарушена первая нормальная форма. На вики немного мудрено написано, можно поискать попроще и с примерами: http://i-novice.net/6-normalnyx-form-bd/

Спустя 1 минута, 35 секунд (29.01.2012 - 19:41) Игорь_Vasinsky написал(а):
читать можно долго. со временем и с понятными советами он скоро сам к этому придёт.

Иногда наоборот необходимо денормализовать структуру БД wink.gif

Спустя 1 минута, 4 секунды (29.01.2012 - 19:42) Гость_Евгений написал(а):
Many thanks, товарищи, понял smile.gif

Спустя 1 минута, 27 секунд (29.01.2012 - 19:44) Игорь_Vasinsky написал(а):
ну т.е. я не имел ввиду что читать вообще не надо biggrin.gif просто именно эта тема там (на вики - намудрена)

Спустя 3 минуты, 20 секунд (29.01.2012 - 19:47) Гость_Евгений написал(а):
Ок )))

Кстати насчет денормализации, я почему в принципе задал этот вопрос, просто у меня есть одна таблица, где мне именно так и удобно делать (хранить через запятую, а потом доставать массивом и выводить). А тут вот получилось что не тот вариант, больно хлопотно

Спустя 16 минут, 51 секунда (29.01.2012 - 20:04) Rand написал(а):
Денормализацию обычно для быстродействия делают, например создают поле num_posts в таблице users и хранят там количество сообщений пользователя, чтобы не бегать каждый раз по огромной таблице posts в несколько миллионов записей, считая функцией COUNT количество постов этого пользователя. Здесь не твой случай.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.