Вчера решил добавить на блог возможность закрывать комментарии для некоторых веток. Я долго ломался, делать эту возможность или нет. С одной стороны, я не хочу ограничивать читателей в праве высказаться, с другой стороны, иногда просто необходимо останавливать разговор.
Я как и прежде буду просто просить остановить жаркие споры, но не буду закрывать ветки. Новая возможность добавлена для веток, в которых можно мусорить. Например, вчера я создал ветку, в которой кто угодно мог задать вопрос и я отвечал на них. Ветка прожила один день, и я ее закрыл. Подобная ветка будет открыта через некоторое время снова. По ходу дела подобные вещи нужно устраивать чаще, но и нужно иногда останавливать, чтобы я мог передохнуть :).
Но не это самое главное. Я новую маленькую фишку добавлял вчера 3 часа. Тут же возникает вопрос, что я делал все это время? Справедливый вопрос. Вот как все происходило.
Добавил новое поле в базу данных, которое будет отображать состояние записи. Обновил все текущие записи в ноль и пошел кодить код. Сделал все, залил на сервак, иду в админку, чтобы закрыть горячее вчерашнее обсуждение, но мои изменения не сохраняются. Странно то, что я и не вижу изменения, которые я проапдейтил на сервере базы.
Я полтора часа бился над кодом и не могу понять, почему я не вижу значения из таблицы и почему оно не обновляется в моих сценариях, но так и не смог понять. У меня уже пошли супер сумасшедшие идеи, что имя поля в админке создано по идиотски и мой сценарий не может понять его. Других, более реальных идей у меня не было, только идиотские.
Я убил поле через mysqladmin и добавил два запроса в свой сценарий, чтобы добавить поле программно через мой php файл. Кликаю пимпу, тестирую, и все работает. Что за херня. Тонна мата пролетела через мою голову. Почему поле, созданное в mysqladmin не было видно в моем сценарии? Лезу в mysqladmin проверить данные и оказываюсь в ступоре, потому что я не вижу поле созданное программно. Еще больше мата пролетело через голову.
Я сидел в ступоре пять минут, чтобы понять, что происходит. С како-го то перепуга я решил посмотреть последнюю запись в базе. И о чудо, последняя запись в mysqladmin датирована двумя годами старости. База данных явно не та.
Два года назад я перекидывал базу данных с одного mysql сервера на другой. Я скопировал данные, изменил настройки в сценариях, чтобы перенаправить сценарии на новую базу, но ЗАБЫЛ ЗАЛИТЬ НА СЕРВЕР настройки!!! Два года я думал, что использую новый сервер, а реально данные летели на старый, который могу закрыться в любой момент. Пришлось сегодня утром переливать данные опять и перенаправять сценарии на новый сервер. Так что если чей-то комментарий затерялся, то простите меня. Я не специально.
Зато я теперь знаю, что база данных сайта сейчас составляет 9 мегабайт не сжатого текста. В принципе, достаточно большая пачка текста.
Понравилось? Кликни Лайк, чтобы я знал, какой контент более интересен читателям. Заметку пока еще никто не лайкал и ты можешь быть первым
Михаил, а вы можете написать статью о том, как сделать возможность закрытия комментирования на примере движка, представленного в вашей книге?
Банально. Добавил в таблицу записей поле State. А потом в коде проверка, если поле равно нулю, то показать блок сохранения комментария.
Для безопасности можно еще и сохранять комментарий только если состояние строки 0. А то вдруг кто-то умный сохранит форму комментария, подправит ее и направит запрос серверу напрямую.
Михаил, веселая получилась история.. 2 года не подозревали, что информация летит на старый сервер =D ;
9 Мб.. Это же книга!
В войне и мир около 2.5 миллионов символов (где-то читал в интернете). Даже если в backup файле, который создал mysqladmin будет половина управляющих символов и инструкций SQL, то получается, что мы с вами написали две книги войны и мир. Не забываем, что в бакапе лежит не только текст написанный мной, но и ваши комментарии.
Естественно =)
Вот я сейчас решил еще дописать Нашу книгу очередным массивом символов =)
А вот эти все штуки, что вы проворачивали с MySqlAdmin.. Какой он версии?
Хотите найти еще что-то интересное почитать? Можно попробовать отфильтровать заметки на блоге по категориям.