$32.65


$26.58


$30.53


Сделать первый небольшой скрипт

С чего начать?
Я думаю, сейчас самое время перейти от слов к делу — сделать первый небольшой скрипт.

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

Для этого нам понадобятся: база (таблицы сделаем в mysql), форма ввода, процедура загрузки из текстового файла (на тот случай, если ранее список книг лежал в
файле — у меня дело именно так и обстоит), страница для вывода с сортировкой по критериям и, как дополнительный прибамбас (его сделаем в самую последнюю
очередь), загрузка новостей с сайтов издательств с занесением выбранных позиций в базу.


Цель проекта проста. Не упустить интересующее чтиво.

Структура таблиц будет такой. Таблица описания книг books:

id int(5) — уникальный id autoincrement primary key — сначала хотел сделать автора и название ключем, решил, что это будет неудобно, если решим добавлять ссылочные
таблицы)
author char(60) — автор
namebook text(100) — название книги
series int(2) — id серии (если книга принадлежит серии) — для серий отдельная таблица
edition int(2) — издание

year int(4) — год издания
isbn char(20) — isbn (интересно, 20 символов хватит?)
pages int(4) — объем книги
when_create int(2) — номер квартала (за точку отсчета возьмем i квартал 2000)
how int(4) — предположительная цена
status int(1) — id статуса: обязательно заказать, посмотреть подробнее и т.п.

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

Для создания таблицы нам понадобится создать базу данных в mysql (назовем ее тоже books) и в ней уже саму таблицу.

Но сначала об установке mysql. Я опишу установку под winnt (под *nix-ы его надо собирать — я пока это проделывать не пробовал).

Процедура эта довольно проста. Надо забрать дистрибутив с http://www.mysql.com, раскрыть zip, запустить setup.exe.

После окончания установки в каталоге mysql-я будет лежать файл my-example.cnf.

Предполагается, что его надо будет скопировать в каталог c:\ под именем my.cnf.

Я этого не делал. Вместо этого, следуя readme-файлу, я запустил winmysqladmin.exe, выбрал закладку «my.ini setup»,
указал директорию, в которой живут поддиректории mysql-я (у меня это c:/usr/local/mysql),
выбрал радиобаттон в секции «mysqld file» mysqld-nt (запуск mysql-сервера как службы в nt) и нажал на «save modification».

После чего в winnt-каталоге обнаружил файл my.ini. Все. Осталось убедиться, что в списке служб появилась служба «mysql»,
и выставить ей атрибут запуска (руками/автоматом).

Итак, заходим в каталог (если вы, конечно, не внесли эту директорию в path-окружение) c:\mysql\bin
(или туда, куды вы установили mysql; далее будем полагать, что mysql установлен в c:\mysql) и запускаем mysqladmin
с параметром (краткую справку по параметрам mysqladmin-а я приведу в следующем шаге).

create .

В нашем случае
create books.
mysqladmin никакой мессагой нас не порадовал, но, зайдя в c:\mysql\data (там по умолчанию mysql хранит базы данных,
если не задано противное в конфигурации сервера), можно с чувством глубокого удовлетворения обнаружить директорию books.

Это и есть наша база. Правда, директория пуста — мы ведь не создали в базе еще ни одной таблицы.
(Кстати, если вы решите удалить базу пудем удаления директории — лучше откажитесь от этой затеи.
mysql хранит у себя информацию о существующих базах. Для корректного удаления базы есть параметр у mysqladmin-а:
drop .

Создаем таблицу. Можно зайти в mysql.exe и создать там, а можно скормить тектовый файл с командами для mysql-я на вход exe-шнику.
(При заходе с локальной машины mysql считает, что пришел root со всеми полномочиями — о пользователях и полномочиях в mysql-е поговорим позднее).

Итак, либо, зайдя в mysql, введите нижеследующую последовательность команд, либо сохраните их в файле (например, books.sql) и скажите

mysql < books.sql
А вот содержимое books.sql:
connect books;
create table books (
id int(5) not null primary key auto_increment,
author char(60),
namebook varchar(100),
series int(2),
edition int(2),
year int(4),
isbn char(20),
pages int(4),
when_create int(2),
how int(4),
status int(1)
);
Зайдя теперь в каталог c:\mysql\data\books, вы обнаружите целых три файла: books.frm (структура таблицы),
books.myd (данные; сейчас он нулевой длины — insert-ов ведь не было!) и books.myi (данные о ключах).

На последок небольшое пояснение по первой строке (полю) в insert-е. По идее, параметр «not null» не нужен,
раз «primary key» говорим. Но есть мнение, что лучше все же его указать (я не готов это утверждение как-либо комментировать).
auto_increment, соответственно, присваивает одноименный атрибут полю, позволяя при insert-е автоматически генерить цифру на единицу большую,
чем в предыдущем insert-е.

 

Интересное

12 языков...
Существует около 8 500 языков программирования (не удивляйтесь, данные не преувеличены), однако, несмотря на такое разнообразие, число языков, на которых пишет большинство, с трудом переваливает...
Подробнее...
Вопросы по графике и...
Какой графический формат (GIF или JPEG) лучше использовать для графики в веб и почему? Если ваша картинка содержит немного цветов и/или четкие линии — лучше использовать GIF т.к. его палитра...
Подробнее...
File Transfer Protocol:...
У меня нет выхода в Интернет, но есть доступ к почтовому ящику и возможность отсылать и получать письма. Можно ли как-нибудь скачивать из Интернета файлы, используя такой усеченный доступ? Да, вы...
Подробнее...
Непростые вопросы...
Сегодня, сплошь и рядом, можно столкнуться с публичным неприятием рекламы. Потребитель говорит: «реклама промывает мне мозги». Он вопрошает: «доколе?» Он утверждает: «ненавижу навязчивость во всех...
Подробнее...
Как сгенерировать файл...
Рано или поздно любой веб-мастер сталкивается с необходимостью защиты своего сайта, более тонкой настройки доступа к различным его параметрам. Один из вариантов — использовать специальный...
Подробнее...
Используем Cron
Данная заметка предназначенна для тех, кто собирается работать с cron, но еще не знает как все это делается. Я в кратце попробую объяснить что такое cron, для чего он нужен да и как вообще с ним...
Подробнее...
Невизуальные классы в Delphi
В этом обзоре мне хотелось бы рассказать про несколько классов Delphi, которым обычно в книгах и других обучающих материалах уделяется (если уделяется) весьма скромное внимание. Это так называемые...
Подробнее...
Настройка основного...
ВведениеВ состав Windows входит служба времени W32Time, необходимая для работы протокола проверки подлинности Kerberos. Служба времени предназначена для синхронизации времени в рамках организации...
Подробнее...
Сделать первый небольшой...
С чего начать?Я думаю, сейчас самое время перейти от слов к делу — сделать первый небольшой скрипт.Возьмем для примера следующую задачу. Нужно сделать базу с книгами, которые появились или скоро...
Подробнее...
"Грабим" странички
С аудиограбберами знакомы все. Нам предстоит сделать свой собственный граббер информации из Интернета. Нам понадобится подопытный кролик, на роль которого я предлагаю выбрать сайт...
Подробнее...