PHP Сортировка из сериализованных данных

У меня есть таблица MySQL с клиентами в ней, обычные данные, имена, адреса, номера телефонов и т. Д. У меня также есть поле, которое называется «ролями», в котором клиент делает отметку о том, что им нравится делать, например, кодирование, иллюстраций и т. д. и т. д. эти данные попадают в поле, сериализованное с каждым кодом ролей, следующим примером.

a:3:{s:4:"_wfa";s:2:"on";s:3:"_CS";s:2:"on";s:3:"_CM";s:2:"on";} 

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

Надеюсь, это имеет смысл, я не могу понять, как это сделать.

Надеюсь, кто-то может пролить свет на это.

Ура,

Solutions Collecting From Web of "PHP Сортировка из сериализованных данных"

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

 CREATE TABLE user_roles (user_id INT, role_name VARCHAR(100)); INSERT INTO user_roles (1, '_wfa'); INSERT INTO user_roles (1, '_CS'); INSERT INTO user_roles (1, '_CM'); SELECT users.id FROM users INNER JOIN user_roles ON users.id = user_roles.user_id WHERE user_roles.role_name = '_wfa'; 

Вы должны нормализовать это в таблице. После сериализации это означает, что вы не можете использовать какие-либо преимущества SQL на нем, а также для его разбора требуется PHP (или собственный код для другого языка).

MySQL или любая база данных не могут не выполнять арифметику данных, выполняемых внешним языком программирования. Единственный способ получить данные – это вытащить его и нециализировать в PHP, прежде чем вы сможете использовать данные.

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

Переход к SQL, объекты становятся таблицами – они похожи на массивы. Атрибуты объектов становятся столбцами, но когда объект содержит массив других объектов – этот атрибут получает статус таблицы … Нормализация означает принятие таких вещей, как роли, и создание таблицы кодов для них, к которой вы можете обратиться в других таблицах.