Перейти к контенту

Обновление статистики форума из вне


Рекомендуемые сообщения

Доброй день! Я не являюсь клиентов 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.: извиняюсь перед модерами за создание топика в неподходящей ветке форума, за что и был наказан...

Ссылка на комментарий
Поделиться на других сайтах

это сериализованный массив.

Прочитай из базы это значение, а дальше примени к нему unserialize()

Ссылка на комментарий
Поделиться на других сайтах

это сериализованный массив.

Прочитай из базы это значение, а дальше примени к нему 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. Как его теперь обратно вписать-то? Я уже все пробовал... Помогите, пожалуйста :D

Ссылка на комментарий
Поделиться на других сайтах

ну так $stats['last_mem_id'] = новый id

далее обратно сериализуй и делай update в таблицу

 

вот это

foreach( $tmp as $k => $v )

{

$stats[ $k ] = stripslashes($v);

}

мне вообще очень понравилось :D
Ссылка на комментарий
Поделиться на других сайтах

Song, спасибо, все сделал...

 

		if ( is_array( $tmp ) and count( $tmp ) )
	{
		foreach( $tmp as $k => $v )
		{
			$stats[ $k ] = stripslashes($v);
		}
	}

 

вот это я вырезал, как я понял по твоему смайлику, ненужное, поэтому я вырезал из кода...Если спросишь,откуда это взялось, то ответ однозначный - копи-паст...

Спс :D

Ссылка на комментарий
Поделиться на других сайтах

Да не, просто бессмысленно так делать. Зачем делать новый массив $stats, если можно использовать $tmp ?
Ссылка на комментарий
Поделиться на других сайтах

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.