Выборка из БД

makis

Новичок
Выборка из БД

Помогите пожалуйста разобраться с выборкой.
В ячейке содержится запись типа ваз|газ|audi|mercedes|bwm...
Как можно прочитать все элементы отдельно в массив?
 

Sokil.Dmytro

Новичок
странный вопрос: если все елементы - то почему отдельно. считал и разбил експлодом....
 

makis

Новичок
Да затруднений в прямом смысле вприниципе нет. Просто я где-то слышал, что это можно сделать с помощью регулярных выражений, а не следующем кодом:
PHP:
$string = "ваз|газ|audi|mercedes|bwm";
$brand = explode("|", $string);
Вроде бы, регулярки работают шустрее.
 

filipchuk

Новичок
еще один теоретик-ускоритель :)
как умееш, так и делай.
лучше займись более важными вопросами (к примеру, наличие такой записи ваз|газ|audi|mercedes|bwm говорит о том, что БД неверно спроектирована)
 

iceman

говнокодер
ппц, 0.000001% прирост в скорости, становится проблемой...
и не думаю что explode() медленее

проблема в тебе... у тебя еще нету проблемы в скорости, а ты уже ее пытаешься решить...
 

makis

Новичок
filipchuk
к примеру, наличие такой записи ваз|газ|audi|mercedes|bwm говорит о том, что БД неверно спроектирована
А как, в таком случае, правильнее записать данные в БД?

-~{}~ 06.07.07 16:43:

iceman
:)
 

makis

Новичок
Опишу подробнее.
Есть таблица. В ней колонки action, brand, date_time.
Она заполняется примерно так.
В action:
Продам|Куплю|Продам|Куплю
В brand:
ГАЗ|ВАЗ|Audi|BMW
В date_time:
10.06.07 14:45|12.12.08 21:08|10.06.07 14:45|12.12.08 21:08

Ну, я думаю, структура понятна. Можно, конечно, создать отдельные таблицы action, brand и date_time и связать их каким-нибудь идентификаторм. Разве это будет лучше?
 

filipchuk

Новичок
ну если делать через ж..пу, то можеш оставить как есть
а если нормально, то в поиск и читать внимательно
 

filipchuk

Новичок
почитай литературу, уверен, что в инете есть море информации про нормализацию, которая написана на доступном языке с простыми примерами
 

Sokil.Dmytro

Новичок
1. когда это експлод работал медленнее регулярок?
2.
action - brand - date_time
продам - газ - 10.06.07 14:45
Куплю - ВАЗ - 12.12.08 21:08
...

если правильно понял логику
 

makis

Новичок
Sokil.Dmytro
action - brand - date_time
продам - газ - 10.06.07 14:45
Куплю - ВАЗ - 12.12.08 21:08
:) Мне кажется, что filipchuk не согласится и с таким вариантом. Ибо одно из правил гласит:
Первая нормальная форма (1NF)
Таблица находится в первой нормальной форме, если каждый её атрибут атомарен и все строки различны. Под выражением "атрибут атомарен" понимается, что атрибут может содержать только одно значение. Таким образом, не соответствуют 1NF таблицы, в полях которых могут храниться списки значений. Для приведения таблицы к 1NF обычно требуется разбить таблицу на несколько отдельных таблиц.
-~{}~ 06.07.07 17:31:

Sokil.Dmytro
А.... простите, не внимательно разобрал Ваш пост. Может так и будет нормально, но дело в том, что есть ещё колонка с комментариями, куда каждый может добавлять свои. Если бы он один был, то было бы всё в порядке. Но если их несколько, то как поступить? Вот я и подумал, что можно было бы всё отделять символом "|".
 

Sokil.Dmytro

Новичок
блин

1. гдето отмечаешь:

1- куплю
2 - продам
...

2. тоже

1 - ваз
2 - газ
...

дальше таблица

id - action - brand - date
1 - 1 - 1 - 1999
2 - 1 - 2 - 2003
3 - 2 - 1 - 1898

и таблица камментов

id - comment

1 - comment1
2 - comment 2
3 - comment 3

так соответствует?
 

makis

Новичок
Sokil.Dmytro
Так, наверное, соответствует :).
Спасибо большое!
 
Сверху