Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема хранения массивов в базе 
:(
    Опции темы
Deg
Дата 9.10.2006, 08:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 28.9.2006
Где: Dniepropetrovsk, Ukraine

Репутация: нет
Всего: нет



Приветствую!

Есть массив, например, такой:

Array(
   [0] -> [123],
   [1] -> Array(
                [0] -> [321],
   [ind1] -> [index]
)

Вопрос: Как его хранить в базе? (тип данных в базе) и, если не трудно - маленький примерчик по записи и чтению...

Уточняю вопрос. Мне нужна цепочка:
Многомерный ассоциативный массив -> Запись массива в 1 поле в базе данных
Чтение из базы этого поля  -> запись в переменную(Переменная становится этим многомерным ассоциативным массивом)

ЭТО ОЧЕНЬ ВАЖНО! Большое спосибо всем ответившим...

p.s.   Используется связка PHP 4 + MySQL4


Это сообщение отредактировал(а) Deg - 9.10.2006, 09:52
PM MAIL WWW ICQ Skype   Вверх
skyboy
Дата 9.10.2006, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



у тебя есть дерево. каждый узел кроме значения имеет наименование. вот и храни дерево в базе: 
вариант 1: в виде связки таблиц: значения(id + число для "листьев"), наименования(id + наименование) и сама древовидная структура(id ветки + id родителя)
вариант 2: использовать технологию Nested Sets
PM MAIL   Вверх
Deg
Дата 9.10.2006, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 28.9.2006
Где: Dniepropetrovsk, Ukraine

Репутация: нет
Всего: нет



Много гемороя...

Возможен ли такой вариант, как запись массива в файл - по такому же принципу записать в поле BLOB ???
PM MAIL WWW ICQ Skype   Вверх
Garret
Дата 9.10.2006, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: 1
Всего: 2



Можно преобразовать в xml и хранить как текст, а при выводе парсить его.
PM MAIL WWW ICQ   Вверх
skyboy
Дата 9.10.2006, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 14
Всего: 260



Цитата(Deg @  9.10.2006,  09:31 Найти цитируемый пост)
Много гемороя...

существуют свечи....
Цитата(Garret @  9.10.2006,  10:15 Найти цитируемый пост)
Можно преобразовать в xml и хранить как текст, а при выводе парсить его. 

почему бы и нет? конечно можно.
Цитата(Deg @  9.10.2006,  09:31 Найти цитируемый пост)
Возможен ли такой вариант, как запись массива в файл - по такому же принципу записать в поле BLOB ??? 

Рекурсивный implode и конкатенация. Почему бы и нет?
PM MAIL   Вверх
smartov
Дата 9.10.2006, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Deg, 
тип данных - text/longtext. Длина - зависит от того, насколько длинные массивы будут. 
Код

$aaa = array(0 => 123,
   1 => array(0 => 321, "ind1" => "index")
);

#-- запись --

$STORE2BASE = serialize($aaa);
//$STORE2BASE сохраняется в базу

#-- чтение --

$bbb = unserialize($STORE2BASE);
var_dump($bbb);

PM MAIL   Вверх
Deg
Дата 9.10.2006, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 28.9.2006
Где: Dniepropetrovsk, Ukraine

Репутация: нет
Всего: нет



Спосибо ребята!
PM MAIL WWW ICQ Skype   Вверх
Gold Dragon
Дата 11.10.2006, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



smartov, где же ты раньше был, вот я мучился с массивами smile

честно признаюсь, не знал про эту функцию


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
SamDark
Дата 11.10.2006, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 2
Всего: 38



smartov, 
Кстати, нет подводных камней у сериализации?


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Garret
Дата 11.10.2006, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 138
Регистрация: 16.9.2006
Где: Киев

Репутация: 1
Всего: 2



SamDark, сколько юзаю, не было...
PM MAIL WWW ICQ   Вверх
smartov
Дата 11.10.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 2
Всего: 259



Цитата(SamDark @  11.10.2006,  09:45 Найти цитируемый пост)
Кстати, нет подводных камней у сериализации? 

Если ты не сериализуешь обьекты - то нет
PM MAIL   Вверх
therik
Дата 23.10.2006, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.9.2005

Репутация: нет
Всего: нет



Встретил недавно такую штуку. При хранении больших массивов при десериализации , выдается след. 
Error at offset 929 of 1229 bytes.
Как лечить пока не придумал, и память увеличивал и что только не делал, одно и то же smile.
Может кто знает, поделитесь smile. Может вообще отказаться от сериализации и использовать свой способ хранения массивов

Это сообщение отредактировал(а) therik - 23.10.2006, 16:41
PM MAIL   Вверх
therik
Дата 23.10.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 26.9.2005

Репутация: нет
Всего: нет



Нашел проблемуsmile.
При сериализации текстовых строк кавычки не приемлемы.!!!
PM MAIL   Вверх
SamDark
Дата 24.10.2006, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 2
Всего: 38



therik, 
Какие именно кавычки и где?


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
Gold Dragon
Дата 24.10.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 2
Всего: 71



Цитата(therik @  23.10.2006,  17:29 Найти цитируемый пост)
При сериализации текстовых строк кавычки не приемлемы.!!!

проверял... пофигу, любые кавычки приемлемы (по крайней мере у меня работает) smile Ошибка где-то в другом месте.


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0565 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.