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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помошь в реализации, ООП 
V
    Опции темы
soloweb
  Дата 30.3.2007, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Georgian
*


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

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



Возникла такая проблема.
Есть объект который включает свойства в ктотрых в виде массива также имеются объекты у которых те же свойства и т.д. до бесконечности это можно раскручивать.
Также имеется главный объект с которого все начинается.
Мне нужно сохранить свойства этого массива в MySQL 5 дабы потом ипортировать из базы и воспроизводить эту информацию.

Я хотел бы так, допустим, вставить в базу в поле obj типа text insert into table set obj="$obj->products";
Но думаю это не катит.
Вот прошу помочь.
Может кто-то делал такую штуку.
Заранее благодарю.
PM MAIL WWW ICQ   Вверх
skyboy
Дата 30.3.2007, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



РНР какой версии? про MySQL сказать не забыл, а про РНР - зась? smile
процесс сей называется сериализацией. для управления этим процессом в РНР 5 были введены два "магических" метода: __sleep и __wakeup. 
потому план работ выглядит следующим образом: 
если тебя не устраивает, что делает(по дефолту) с твои объектом функция serialize() - пишешь метод __sleep, который загоняет в строку  те поля объекта, которые надо. 
если не устраивает дефолтная де-сериализация(или если ты написал-таки свой метод для сериализации) функцией unserialize(), то пишешь метод __wakeup.
после проделанного, сохранение выглядит следующим образом:
Код

mysql_query('INSERT INTO `blashblahblah`(`object`) VALUES("'.serialize($my_object).'")');

и загрузка:
Код

if($query= mysql_query('SELECT `object` FROM `blahblahblah` WHERE `id` = '.$id))
 if($row= mysql_fetch_array($query, MYSQL_ASSOC))
  $my_object= unserialize($row['object']);

Вот примерно так. Правда, если у тебя РНР 4, то придется вместо serialize/unserialize + __sleep/__wakeup писать собственные методы для загрузки данных из строки и сохранения в строку(или же подстроиться под то, КАК serialize/unserialize работают с объектами "по умолчанию" - без твоего контроля).
PM MAIL   Вверх
soloweb
Дата 30.3.2007, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Georgian
*


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

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



PHP 5
smile
Спасибо за помошь.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




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


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

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