0
Другие записи за это число:
2011/07/22_1 - Определение IP и MAC-адреса в JavaScript и прочие шутки
<< предыдущая заметкаследующая заметка >>
22 июля 2011
странный глюк MySQL обнаружился

UPD: Спасибо, все исправил. Заодно обнаружился аццкий маразмище в работе с базой (чем старее собственные исходники, тем больше к ним ненависти, когда натыкаюсь ;). Спасибо anvm за совет. Опуская подробности, было так:

$mm=ms("SELECT DISTINCT `tag` FROM `dnevnik_tags` ORDER BY COUNT(`tag`)");
$a=array();
foreach($mm as $m) $a[$m['tag']]=ms("SELECT COUNT(*) FROM `dnevnik_tags` WHERE `tag`='".e($m['tag'])."'");
arsort($a);
foreach($a as $l=>$n) echo "<br>".h($l)." - ".$n;

Стало так:

$m=ms("SELECT `tag`, count(*) AS `n` FROM `dnevnik_tags` GROUP BY `tag` ORDER BY `n` DESC");
foreach($m as $n) echo "<br>".h($n['tag'])." - ".$n['n'];

:)))))


ИСХОДНЫЙ ТЕКСТ ЗАМЕТКИ:

С переездом на новый хостинг (видимо, другая версия MySQL) обнаружилось, что перестала работать вот такая конструкция:
SELECT DISTINCT `tag` FROM `dnevnik_tags` ORDER BY COUNT(`tag`)
Ее можно увидеть, если в дневнике (лучше в дневнике, а не в блоге): найти любую заметку с тегами и ткнуть в «тэги записи». Идея опции была в том, чтобы вывести на экран все имеющиеся тэги, отсортировав по количеству их использования в заметках. Раньше работало.

При этом исправно работает более простая конструкция:
SELECT DISTINCT `tag` FROM `dnevnik_tags`
Выдает все 48 имеющихся в налиции тэгов, но только не сортирует их по частоте использования.

Первый вариант глючит адски — либо выдает 0, либо 48 раз один и тот же (!) кусок фразы: «ть в такую чепуху, но романтик Энджер на такое должен был клюнуть — тем более, что и сам был на той же выставке и видел то же, что и Борден. Только вот Борден просчитался — оказалось, что свою репутацию Тесла заработал не просто та» (это мусор из чьего-то коммента, в таблице `dnevnik_tags` ничего подобного нет и быть не может), а после выполнения команд:
CHECK TABLE `dnevnik_tags`
ANALYZE TABLE `dnevnik_tags`
FLUSH TABLE `dnevnik_tags`
Стало еще лучше: «Ъy· A@ЇяяяяР|{·`—!Ї яяяяР|{·—!Їё—!Їё—!Ї Р|{·Ё—!Їи–!ЇР|{·h+@Їh+@Їр»

На старой версии MySQL все работало. Интересно, что это? Аномальная жара в Германии или глюк версии?

PS: Я вспомнил: обычно когда я пишу в блог подобные вещи, меня первым делом просят показать структуру базы. Показываю:


CREATE TABLE IF NOT EXISTS `dnevnik_tags` (
`num` int(10) unsigned NOT NULL COMMENT 'id заметки',
`tag` varchar(128) NOT NULL COMMENT 'имя тэга',
PRIMARY KEY (`num`,`tag`),
KEY `tag` (`tag`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `dnevnik_tags`
--

INSERT INTO `dnevnik_tags` (`num`, `tag`) VALUES
(0, 'кино'),
(893, 'Орленок'),
(1067, 'стихи'),
(1080, 'rip'),
(1106, 'лекции о писательском деле'),
(1107, 'лекции о писательском деле'),
(1134, 'Орленок'),
(1142, 'лекции о писательском деле'),
(1218, 'Мексика-2009'),
(1218, 'поездка'),
(1219, 'Мексика-2009'),
(1219, 'поездка'),
(1222, 'Мексика-2009'),
(1222, 'поездка'),
[...]

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий


Include not found: `/home/www/lleo.me/blog/template/_reklamnaya_lirica.htm`