2010-10-09 5 views
0

Я хотел бы хранить следующий массив в одном текстовом поле в MYSQL таблице:PHP двумерный ассоциативный массив Implode

$user_rating[0] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
        'category' => 'Category 1', 
        'description' => 'XXXXXXXXXXXXXXXXX', 
        'link' => 'XXXXXXXXXXXXXXXXX', 
        'thumbnail' => 'XXXXXXXXXXXXXXXXX'); 

$user_rating[1] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
        'category' => 'Category 2', 
        'description' => 'XXXXXXXXXXXXXXXXX', 
        'link' => 'XXXXXXXXXXXXXXXXX', 
        'thumbnail' => 'XXXXXXXXXXXXXXXXX'); 

$user_rating[2] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
        'category' => 'Category 3', 
        'description' => 'XXXXXXXXXXXXXXXXX', 
        'link' => 'XXXXXXXXXXXXXXXXX', 
        'thumbnail' => 'XXXXXXXXXXXXXXXXX'); 

$user_rating[3] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
        'category' => 'Category 4', 
        'description' => 'XXXXXXXXXXXXXXXXX', 
        'link' => 'XXXXXXXXXXXXXXXXX', 
        'thumbnail' => 'XXXXXXXXXXXXXXXXX'); 

$user_rating[4] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
        'category' => 'Category 5', 
        'description' => 'XXXXXXXXXXXXXXXXX', 
        'link' => 'XXXXXXXXXXXXXXXXX', 
        'thumbnail' => 'XXXXXXXXXXXXXXXXX'); 

$user_rating[5] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
        'category' => 'Category 6', 
        'description' => 'XXXXXXXXXXXXXXXXX', 
        'link' => 'XXXXXXXXXXXXXXXXX', 
        'thumbnail' => 'XXXXXXXXXXXXXXXXX'); 

$user_rating[6] = array('percent' => 'XXXXXXXXXXXXXXXXX', 
        'category' => 'Category 7', 
        'description' => 'XXXXXXXXXXXXXXXXX', 
        'link' => 'XXXXXXXXXXXXXXXXX', 
        'thumbnail' => 'XXXXXXXXXXXXXXXXX'); 

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

Любые другие/более эффективные решения структуры массива также приветствуются.

Thanks

ответ

0

Вы считаете JSON? Это может быть вашим лучшим выбором, если вы хотите придерживаться одного поля.

PHP - JavaScript Object Notation

редактировать: Или еще лучше, читать (и голос) для комментариев ниже, потому что serialize является уроженцем функция.

+1

+1 для предложения сериализации. Однако в большинстве случаев в большинстве случаев лучше использовать собственный ['serialize'] (http://php.net/manual/en/function.serialize.php). – lonesomeday

+0

+1 для напоминания мне есть такая функция. Долгое время нет PHP :) – methode

1

Вы можете использовать PHP serialize для преобразования массива в одну строку. Когда вы извлекаете его из базы данных, вы можете использовать unserialize, чтобы преобразовать его обратно в массив.

0

Существует лучшее решение наверняка.
Сохраните эти данные как отдельные записи в отдельной таблице.
Для этого нужны реляционные базы данных.

2

Во-первых, вам не нужно указать заказанный цифровых клавиш, просто написать:

$user_rating[] = array(); 

Во-вторых, почему вы хотите сохранить весь массив в виде строки? Почему бы просто не сохранить каждое из своих полей в качестве столбца s? Разве это не вариант?

В-третьих, вы можете хранить сериализованные массивы (или любые данные, если на то пошло) в БД.

serialize($user_rating); 
store_to_db(); 
... 
$handler = unserialize(get_data_out()); 

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

+0

Спасибо. Я фактически попытался сохранить его в виде сериализованных данных, но получил следующее сообщение об ошибке: У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса, чтобы использовать время, чтобы начать процесс доминирования на вашем рынке. Не просто соглашайтесь на thi 'по строке 1 Введите код: $ serialized_user_rating = serialize ($ user_rating); $ q = "INSERT INTO marketing_roadmap (имя_пользователя, дорожная карта) VALUES ('$ user_name', '$ serialized_user_rating')"; mysql_query ($ q) или die (mysql_error()); –

+0

Я не планирую хранить все данные в таблице, потому что это статично (одинаково для каждого пользователя). В принципе, мне просто нужно хранить/сохранять ORDER категорий для каждого пользователя. –

+0

@ Kenny Знаете ли вы, что строки должны быть экранированы в запросе? –

Смежные вопросы