Ошибка: Failed to parse the Currency Converter XML document.
$17 957.30
|
Ошибка: Failed to parse the Currency Converter XML document.
$928.49
|
Ошибка: Failed to parse the Currency Converter XML document.
$45 168.71
|
Сделать первый небольшой скрипт
С чего начать?
Я думаю, сейчас самое время перейти от слов к делу сделать первый небольшой скрипт.
Возьмем для примера следующую задачу. Нужно сделать базу с книгами, которые появились или скоро появятся в продаже,
и которые вызывают интерес.
Для этого нам понадобятся: база (таблицы сделаем в 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-е.