MIZER Опубликовано 16 Апреля 2006 Жалоба Поделиться Опубликовано 16 Апреля 2006 Доброй день! Я не являюсь клиентов IPB, но все же прошу помощи...Есть некая CMS. Пользователи регистрируются именно через нее. При этом информация о них записывается в БД форума. С этим проблем нет. Единственная сложность в том, что приходится ставить в таск менеджере обновление статистики форума на очень маленький промежуток времени, что не удобно! Нужно сразу добавлять информацию о последнем зарегистрированном, его имени в БД... Как я понял, за это отвечает таблица ibf_cache_store (поле cs_value, где cs_key=stats). Там имеется информация, вида:a:7:{s:13:"total_replies";s:1:"1";s:12:"total_topics"; s:1:"1";s:9:"mem_count";i:8;s:13:"last_mem_name";s:3:"name";s:11:"last_mem_id";s:2:"46"; s:10:"most_count";s:1:"4";s:9:"most_date";s:10:"1144958739";} Подскажите, пожалуйста, как сделать запрос на значения "last_mem_name" (у меня это - name), "last_mem_id" (у меня - 46) и "mem_count" ( у меня - 8). p.s.: извиняюсь перед модерами за создание топика в неподходящей ветке форума, за что и был наказан... Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 18 Апреля 2006 Жалоба Поделиться Опубликовано 18 Апреля 2006 это сериализованный массив.Прочитай из базы это значение, а дальше примени к нему unserialize() Ссылка на комментарий Поделиться на других сайтах Прочее
MIZER Опубликовано 18 Апреля 2006 Автор Жалоба Поделиться Опубликовано 18 Апреля 2006 это сериализованный массив.Прочитай из базы это значение, а дальше примени к нему unserialize() По примеру я смог вытащить логин последнего зарегистрированного пользователя и его id: $r = mysql_fetch_array (mysql_query("SELECT * FROM prefix_name WHERE cs_key='stats'") ); $tmp = unserialize( stripslashes($r['cs_value']) ); if ( is_array( $tmp ) and count( $tmp ) ) { foreach( $tmp as $k => $v ) { $stats[ $k ] = stripslashes($v); } } unset( $tmp ); echo $stats['last_mem_name']; echo $stats['last_mem_id']; А дальше ступор полный. Я получил новый логин и новый id. Как его теперь обратно вписать-то? Я уже все пробовал... Помогите, пожалуйста Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 19 Апреля 2006 Жалоба Поделиться Опубликовано 19 Апреля 2006 ну так $stats['last_mem_id'] = новый idдалее обратно сериализуй и делай update в таблицу вот этоforeach( $tmp as $k => $v ) { $stats[ $k ] = stripslashes($v); } мне вообще очень понравилось Ссылка на комментарий Поделиться на других сайтах Прочее
MIZER Опубликовано 21 Апреля 2006 Автор Жалоба Поделиться Опубликовано 21 Апреля 2006 Song, спасибо, все сделал... if ( is_array( $tmp ) and count( $tmp ) ) { foreach( $tmp as $k => $v ) { $stats[ $k ] = stripslashes($v); } } вот это я вырезал, как я понял по твоему смайлику, ненужное, поэтому я вырезал из кода...Если спросишь,откуда это взялось, то ответ однозначный - копи-паст...Спс Ссылка на комментарий Поделиться на других сайтах Прочее
Song Опубликовано 22 Апреля 2006 Жалоба Поделиться Опубликовано 22 Апреля 2006 Да не, просто бессмысленно так делать. Зачем делать новый массив $stats, если можно использовать $tmp ? Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения