Forum Webscript.Ru

Наши скрипты => MobilePublisherPHP => Тема начата: Ex Librisss от 08 Ноября 2003, 00:30:14

Название: Нашел рецепт лечения блока Статистика!
Отправлено: Ex Librisss от 08 Ноября 2003, 00:30:14
Надеюсь, что авторы программы не оторвут мне все выcтупающие части тела за такое копание в коде. Я ж для дела, а не для выгоды :)

Значит так. Блок "Статистика" не работает в оригинальной версии. Почему - долго искал, нашел вот это: "Запросы UPDATE оптимизируются как запрос SELECT с дополнительными издержками на запись. Скорость записи зависит от размера обновляемых данных и количества обновляемых индексов. Индексы, которые не были изменены, обновлены не будут." http://www.mysql.com/doc/ru/Update_speed.html

А в коде (header.php) команда "UPDATE n_counter1 ..." дается первой, без единого INSERT\'a данной таблицы перед этим. И непроходит (база не выдает ошибку, но исправно апдейтит ровно... 0 рядов :))

Лечение:
Можно ручками вписать в MySQL первый хит (INSERT n_counter1 (totalhits) VALUES (1);) и наслаждаться жизнью.

Можно поступить чуть иначе (как сделал я): до постановки МР подредактировал файл installer.php на предмет объединения таблиц n_counter1 и n_counter2, а потом подредактировал header.php на предмет убирания упоминаний о "лишней" табличке.

AN, может стоить это сразу в дистрибутиве сделать? Там (если знаешь чего) возни на три минуты, а польза - очевидна.
И вообще, подозрительны мне безиндексные таблички в три строки - на кой ляд их разводить? :) :beer:
Название: Нашел рецепт лечения блока Статистика!
Отправлено: AN от 10 Ноября 2003, 09:27:12
Спасибо, Ex Librisss, за помощь, а то у меня руки не как не доходили. Авторы программы не оторвут тебе все выступающие части тела, а даже похвалят! По поводу без индексных табличек, в ней хранятся текущие значения счетчика. Следовательно я всем рекомендую ручками вписать в MySQL первый хит, как и сказал достопочтенный Ex Librisss.
Название: Нашел рецепт лечения блока Статистика!
Отправлено: marvel от 13 Ноября 2003, 23:31:14
А можно енто усе повторить на понятном для плохо-разбирающихся языке? т.е. какой запрос дать MySQL чтобы это реализовать? или какие поля в этой таблице надо изменить? ато что-то до мене не дойдет...
Название: Нашел рецепт лечения блока Статистика!
Отправлено: AN от 14 Ноября 2003, 09:42:04
Нужно установить значение поля totalhits таблицы n_counter1 равным 1.
Название: Нашел рецепт лечения блока Статистика!
Отправлено: Ex Librisss от 14 Ноября 2003, 23:53:33
Цитировать
marvel:
А можно енто усе повторить на понятном для плохо-разбирающихся языке? т.е. какой запрос дать MySQL чтобы это реализовать? или какие поля в этой таблице надо изменить? ато что-то до мене не дойдет...

А так и впиши в (не знаю, в чем ты там MySQL правишь):
INSERT n_counter1 (totalhits) VALUES (1);
Если правишь в mysoladmin\'e или в консоли - не забудь точку с запятой в конце, если в phpMyAdmin\'e - можно и так :)

AN, спасибо за похвалу. А все-таки, почему табличку с текущими значениями вынелсли отдельно? Если ее объединить с с таблицей counter_2 все прекрасно работает... Впрочем, вынесли и ладно.

Тогда еще вариант - прямо в header.php  забить этот инсерт. Где-нибудь повыше, до апдейта.
Название: Нашел рецепт лечения блока Статистика!
Отправлено: AN от 16 Ноября 2003, 17:26:47
Вынесли для того, чтобы разделить логически, ведь counter_2 содержит статистическую информацию, а counter_1 всего лишь  значение счетчика.
Название: Нашел рецепт лечения блока Статистика!
Отправлено: marvel от 17 Ноября 2003, 20:10:56
у меня просто вылетело из головы что нада префикс таблицы вписать свой вот и туплю... пргосто нада было поменять n_counter1 на mp_counter1