Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: serialize и значение при регистрации

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Fetis
Отправлено: 26 Июня, 2014 - 10:44:57
Post Id



Частый гость


Покинул форум
Сообщений всего: 153
Дата рег-ции: Дек. 2012  
Откуда: Киров, Россия


Помог: 0 раз(а)




Всем доброго дня. Вопрос такой: есть в бд значения пример:
s:82:"email1@rambler.ru,email2@yandex.ru,email3@mail.ru,email4@mail.ru"

Как осуществить проверку при регистрации с сериализованным значением из БД?

Пример:
Добавляется в базу значение email1@rambler.ru, происходит поиск: нет ли его нигде в serialize значениях бд, если нет, то добавляет.

Пытался как можно понятней объяснить)

Идея: перед добавлением циклично выбирать все значения из бд, их unserialize, и потом уже сверять каждую запись тоже в этом же цикле, с тем значением, что хотим добавить?

Или же перевести все значения в массив, и сверять уже поиском по массиву?

(Отредактировано автором: 26 Июня, 2014 - 10:52:11)

 
 Top
Zuldek
Отправлено: 26 Июня, 2014 - 10:55:48
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




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

(Отредактировано автором: 26 Июня, 2014 - 10:56:29)

 
 Top
Fetis
Отправлено: 26 Июня, 2014 - 10:57:42
Post Id



Частый гость


Покинул форум
Сообщений всего: 153
Дата рег-ции: Дек. 2012  
Откуда: Киров, Россия


Помог: 0 раз(а)




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

Хорошо бы это были данные авторизации, дак это просто список всех email адресов у одной организации Улыбка
А создавать отдельную таблицу не хочется, ибо напряжно будет с join'ами всё выбирать, и затратно вроде как.

(Отредактировано автором: 26 Июня, 2014 - 11:07:49)

 
 Top
IllusionMH
Отправлено: 26 Июня, 2014 - 12:03:58
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




Fetis, а в таком виде не напряжно искать по ним? Не понял И нормальный вариант скорее всего будет быстрее работать в приведенном случае, чем поиск(и в сотни раз быстрее чем unserialize в цикле).
"Вроде как" это не аргумент не сделать. Лучше написать и проверить производительность общую. Сомнительно что будут просады именно из-за этого Радость
В крайнем случае выбирайте регуляркой из сериализованной строки, но это криво.

(Отредактировано автором: 26 Июня, 2014 - 12:05:00)

 
 Top
DelphinPRO
Отправлено: 26 Июня, 2014 - 12:17:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Fetis пишет:
А создавать отдельную таблицу не хочется, ибо напряжно будет с join'ами всё выбирать, и затратно вроде как.

пффф, так и нужно было сделать...


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB