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 :: перечисление

 PHP.SU

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


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

> Без описания
Вездеход
Отправлено: 17 Июня, 2008 - 09:53:32
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


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




кто нить может сказать как записать данные в базу данных в виде массива?

т.е. если у меня есть вот такой "набор" инфы: 555, 444, 387, 85, 1, 357
можно ли записать все это в таблицу чтоб потом можно было нормально обрабатывать?

я сперва подумал что можно так сделать если будет тип у ENUM. но ошибся...
можно канешно записать эти данные как текст и потом просто разбить его на элементы - но это лишняя обработка... =)


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
valenok
Отправлено: 17 Июня, 2008 - 12:44:31
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


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




если тебе надо по ним выборку делать то в отдельные поля
хотя можешь и в одно поле текстовое и выбирать припомощи регулярных выражений.
Если не надо, то можешь записывать после serialize


-----
Truly yours, Sasha.
 
My status
 Top
RomAndry Администратор
Отправлено: 17 Июня, 2008 - 13:28:45
Post Id



Частый посетитель


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


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




serialize/unserialize
или записывай как массив (или с разделителем) в строку а потом explode
 
My status
 Top
Вездеход
Отправлено: 17 Июня, 2008 - 23:08:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


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




RomAndry пишет:
serialize/unserialize
или записывай как массив (или с разделителем) в строку а потом explode

про serialize/unserialize можно поподробнее узнать?

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

про explode - сам пока только этот вариант и придумал...


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Джур
Отправлено: 17 Июня, 2008 - 23:13:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


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




думаю вот такой кусок кода вам поможет понять что вам предлагает уважаемый RomAndry.

PHP:
скопировать код в буфер обмена
  1. <pre><?
  2. $x=array(555, 444, 387, 85, 1, 357);
  3. $x=serialize($x);
  4. print_r($x);
  5. $x=unserialize($x);
  6. print_r($x);


-----
Тамбовский каджит тебе товарищ
 
 Top
EuGen Администратор
Отправлено: 18 Июня, 2008 - 09:58:34
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




Возможно, Вам подойдет тип SET в MySQL. Правда, он слишком мощный для такой задачи. Да и число элементов там очень ограничено (максимум 64).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Вездеход
Отправлено: 18 Июня, 2008 - 16:08:43
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


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




хм. SET же вроде по принципу как и ENUM работает?
или я ошибаюсь?
(Добавление)
Джур пишет:
думаю вот такой кусок кода вам поможет понять что вам предлагает уважаемый RomAndry.

PHP:
скопировать код в буфер обмена
  1. <pre><?
  2. $x=array(555, 444, 387, 85, 1, 357);
  3. $x=serialize($x);
  4. print_r($x);
  5. $x=unserialize($x);
  6. print_r($x);


Цитата:
a:6:{i:0;i:555;i:1;i:444;i:2;i:387;i:3;i:85;i:4;i:1;i:5;i:357;}

Array
(
[0] => 555
[1] => 444
[2] => 387
[3] => 85
[4] => 1
[5] => 357
)


вот попробовал. вопщем то как вариант... =)
только если я буду записывать в базу вот так:
555, 444, 387, 85, 1, 357
и вот так:
i:0;i:555;i:1;i:444;i:2;i:387;i:3;i:85;i:4;i:1;i:5;i:357;

разница в размерах думаю есть )

зы.
после обработки получается вот так:
a:6:{i:0;i:555;i:1;i:444;i:2;i:387;i:3;i:85;i:4;i:1;i:5;i:357;}

в начале 6 - это количество эллементов.
а буква "a" что значит? если array - то как то не логично ...

(Отредактировано автором: 18 Июня, 2008 - 16:15:40)



-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
EuGen Администратор
Отправлено: 18 Июня, 2008 - 16:15:24
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




И вообще, почему бы не хранить массивы в таблицах, они для того и предназначены (*..
Хотя это вопрос удобства. По идее такие данные можно было бы хранить в отдельной таблице, а в основной хранить только ссылку.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Вездеход
Отправлено: 18 Июня, 2008 - 16:18:22
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


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




хм
ну для начала - я "экономлю" количество запросов к базе поэтому хачу все компактно сделать - дабы не было лишних запросов.

далее. ссылки вариант. но я не умею ими пользоваться Закатив глазки Растерялся

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


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
EuGen Администратор
Отправлено: 18 Июня, 2008 - 16:23:26
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


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




А что такого - пишете индекс как ключ, а данные как некоторое поле с данными. Кроме этого, нужно хранить некоторый id из основной таблицы. Вот и все.
Ссылка - это будет FOREIGN KEY.
Экономия запросов - это смотря сколько значений будет, где они используются и прочее. Возможно, придерживаться релиционности как раз будет лучшим выходом.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Джур
Отправлено: 18 Июня, 2008 - 16:30:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 423
Дата рег-ции: Март 2007  


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




Вездеход пишет:
в начале 6 - это количество эллементов.
а буква "a" что значит? если array - то как то не логично ...

вот что значит не читать документацию. Улыбка Эх... Прочтите документацию... очень прошу... а потом уж обижайте функции: serialize/unserialize


-----
Тамбовский каджит тебе товарищ
 
 Top
Вездеход
Отправлено: 19 Июня, 2008 - 08:37:02
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


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




EuGen спасибо попробую разобраться...

Джур ну так я прочитал про обе функции. и немного доп инфы - вроде все что есть на php.su про них.
но про не совсем понел что именно он пишет в начале строки...


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB