Популярные сообщения

понедельник, 4 апреля 2011 г.

Как сделать популярный сайт ~~~~~ "Книга Отзывов", версия для писателей. ~~~~~


Если выпуск отображается некорректно, Вы можете посмотреть его на сайте перейти к выпуску >>>

Добрый день,
уважаемые читатели рассылки
"Как сделать популярный сайт"
Выпуск 184.
~~~~~ "Книга Отзывов", версия для писателей. ~~~~~
Внимание! Если ваша почтовая программа не отображает корректно рисунки или тексты, то
Нажмите здесь :: http://kocby.ru/post/webmaster/text/issue184.html



"Книга Отзывов",
версия для писателей.

Если Вы не популярны,
Значит, Вас как бы и не существует...



Сделано в kocby.ru
Продолжаем разговор о функционале "Книга Отзывов". Предлагаемый для обсуждения функционал, действительно, очень интересный, полезный для постижения премудростей самых современных веб технологий, удачно адаптируется под самые разные проекты. Сегодня посмотрим адаптированную версию для творческой группы писателей.
© Перепечатка разрешается с установкой ссылки на ресурс http://kocby.ru/.



Уважаемые коллеги!

В нашем последнем выпуске...

"Книга Отзывов", встроенная версия. :: http://kocby.ru/post/webmaster/text/issue183.html

Был вопрос по поводу смысла строки AUTO_INCREMENT=20 в SQL-коде.

Ответить рискнул Станислав, за что ему огромное спасибо.

Итак, вникаем.

~~~~~~~~~~~~

Добрый день, Владимир.

В вашей рассылке был задан вопрос по поводу автоинкремента в следующем скрипте.

CREATE TABLE IF NOT EXISTS `table2` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`parent_id` int(5) NOT NULL DEFAULT '0',
`name` varchar(50) NOT NULL,
`comment` text NOT NULL,
`IP4` varchar(15) NOT NULL,
`date_add` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=20 ;

Так вот ответ. В скрипте объявлен столбец ID и у него стоит как раз нужное слово - AUTO_INCREMENT. Это обозначает, что это будет ключевое поле primary_key. Это позволяет в последующих запросах (точнее инсертах) не указывать значение этого поля, оно примет новое значение автоматически. Конкретно значение будет равным (последнее_значение_ключа+20). В конце скрипта именно это и указано - AUTO_INCREMENT=20. Вот это оно самое.

В принципе можно было сразу указывать 20 в объявлении таблицы. Но вот так как у Вас более информативно.

С уважением, Овсянников Станислав.

~~~~~~~~~~~~

Увы, мне. К сожалению, не понял, что значит "сразу указывать 20 в объявлении таблицы", потому не отвлекаемся и тестируем код в том виде, как он есть.

А на будущее, давайте, так договоримся: что сказал и тут же подтвердил (опровергнул) практическим примером. Чтобы всем стало понятно.

Тестируем командами типа
INSERT INTO `gb2011`.`table2` (`parent_id`, `name`, `comment`, `IP4`, `date_add`) VALUES (0, '3', '3', '3', NOW())

Т.е. специально опускаем поле ID, чтобы посмотреть, как автомат будет отрабатывать значение `id` int(5) NOT NULL AUTO_INCREMENT.

Получаем такую штуку.

При первом запуске id принимает значение 20, а затем: 21, 22... (а вовсе не 40, 60... - как я думал).

Только сейчас дошло, откуда вообще взялось это AUTO_INCREMENT=20.

Дело в том, что этот SQL код был сформирован автоматом при организации экспорта, а таблице уже было 19 записей. Умный phpMyAdmin вовсе не создает кусок кода для структуры таблицы независимо от содержания таблицы (как я думал), а учитывает количество записей в ней и путем AUTO_INCREMENT=20 указывает, что следующая запись будет 20.

А нельзя ли было просто ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT ;
... а количество записей определять автоматом при будущей вставки? Не знаю.

Продолжаем разговор о функционале "Книга Отзывов", если кто опаздал к началу цикла этих бесед, рекомендую все-таки ознакомиться с ними здесь: 179, 180, 181, 182, 183.

Предлагаемый для обсуждения функционал, действительно, очень интересный, полезный для постижения премудростей самых современных веб технологий, удачно адаптируется под самые разные проекты.

Например, вот здесь:

"Книга", версия для писателей. :: http://kocby.ru/writenow/story01/

Установил интересную версию той же нашей Книги, уже как функционал для творческой группы писателей.

Основные изменения к стандартному дистрибутиву такие.

Везде, где есть выражения типа:

$sql = "
SELECT id, parent_id, name, comment, IP4,
DATE_FORMAT(date_add, '%d %M %Y %H:%i') as date_add
FROM story01
";

Заменил на:

$sql = "
SELECT id, parent_id, name, comment, IP4,
DATE_FORMAT(date_add, '%d %M %Y %H:%i') as date_add
FROM story01 ORDER BY ID
";

Позволяет более гибко работать с записями, не обращать внимание на их физическое расположение в БД

В файле index.php вместо:
(button)Сохранить(/button)(img class="loader" src="loader.gif")

Сделал более гибко:

// $loader1 = "loader.gif";
$loader1 = "pig-fly.gif";

(button)Сохранить(/button)(img class="loader" src="(?php echo $loader1 ?)")

Чтобы было проще менять изображение лоудера.

В случае с писателями показалась, что летающая свинья больше всего подходит.

В файле comment_template.php слегка обработал $comment[comment]:
(?php
$comment[comment] = str_replace("\n", "(br /)", $comment[comment]);
$comment[comment] = str_replace("\r", "(br /)", $comment[comment]);
?)

Зачем? Наверное, вы заметили, что в стандартной версии не обрабатываются переводы строк. Для обычной "Книги Отзывов" это не так страшно (там записи обычно короткие), но для писателей это критично. Они писать любят много, тут очень нужны пропуски строк для удобства чтения.

В файле comment.js впервые попробовал регулярные выражения:

var regn = /\n/g
var regr = /\r/g
sendDataComment.comment = sendDataComment.comment.replace(regn, '(br /)');
sendDataComment.comment = sendDataComment.comment.replace(regr, '(br /)');
// и поменял .text на .html
// commentForm.find('.comment').text(sendDataComment.comment);
commentForm.find('.comment').html(sendDataComment.comment);

Это, опять же для корректного отображения переводов строк, но уже сразу после ввода текста пользователем.

Как у вас дела? Если есть проблемы - сообщайте, будем вместе думать.

Вот и все на сегодня. Приглашаю всех желающих стать успешным самому и сделать более успешной систему Матрица путем участия в ее бета тестировании. Количество бета-тестеров по состоянию на сейчас: (вот сейчас и посмотрю...) 530. В Матрице вы научитесь добиваться успеха в любом деле, в том числе и в строительстве популярных сайтов.

Спасибо за внимание.

 
~~~~~ Обратная связь ~~~~~
 

У вас есть два способа реагирования на данный выпуск.

На форуме...

"Как сделать популярный сайт" на форуме :: http://kocby.ru/b/viewforum.php?f=5

Написать лично мне.

Данные для связи на контактной страничке :: http://kocby.ru/contact.html

Ниже дан мой работающий емейл, но доставка через форму на указанном урле надежнее, ее вероятность является почти 100%.

::::::::::::::::::::::::
::: Vladimir Abramov :::
::: va@sumat.ru ::::::::
::: http://sumat.ru/ :::
::::::::::::::::::::::::


### Конец выпуска.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Информационная безопасность Информация, как сделать популярный сайт Как сделать популярный сайт. Думаем. Пробуем. Критикуем.   Анализируем. Джава. Ява. Java. Уроки Фотошопа онлайн
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



Разнообразь свой досуг!
С великолепными вкусами наших вин. Онлайн заказ. Доставка по Москве!


Внимание! Некоторые из следующих ссылок позволяют войти в кабинет подписчика без знания пароля. Не передавайте никому это письмо во избежание несанкционированного доступа к Вашему личному кабинету на проекте Рассылки@Mail.Ru.
Архив рассылки * Рекомендуемые рассылки * Отключить рекламу * Мои подписки * Помощь

Сообщить о нарушении данной рассылкой правил Сервиса
Отказаться от получения данной рассылки: нажмите здесь или отправьте это письмо

Комментариев нет: