Не MySQL’ом единым! Никита Кислицин Xakep, номер #067, стр. 067-094-3 >input type=submit name=add value="Добавить"< >input type=submit name=view value="Показать все"< Искать: >input type=text name=text< >input type=submit name=search value="Поехали!"<>br< Импортировать из CSV: >input type=file name=file"< >input type=submit name=action value="Импорт!"< >/form< Назначение каждого из полей, думаю, вполне ясно из их названий. Поэтому я не буду задерживаться на html-формах, с этим ты, думаю, и сам разберешься. Лучше займемся вещами поинтересней - научимся работать с DBA. Два раза "ку" Мы подобрались к самому интересному. Сейчас мы научимся работать с интерфейсом DBA, а заодно разберемся с несколькими доселе незнакомыми тебе функциями PHP. Самая главная - dba_open(string path, string mode, string handler, [int mode]) - принимает 3 обязательных параметра и открывает базу данных для работы. Первый параметр указывает путь к БД - не забывай, это всего лишь путь к конкретному файлу в файловой системе. Второй аргумент функции - режим, в котором ты собираешься работать с БД, параметр может принимать 4 значения: "r" - БД открывается только для чтения, "w" - для записи, "с" - создается новая база и "n" - новые сведения записываются поверх уже имеющихся. Что касается третьего параметра, то он указывает конкретный тип БД и может принимать следующие параметры: dbm - БД a-la Berkeley DB (устаревший формат), ndbm - более новая версия предыдущего формата, но все равно слишком старая :), gdbm - БД от GNU, db2/3/4 - инструментальный набор от Sleepycat Software, а также cdb - формат, разработанный создателями qmail. Выбор, какой формат лучше использовать, я целиком возлагаю на тебя. Это ведь неважно, DBA умеет работать с любым из них. Я не стану здесь приводить полное описание всех функций DBA API PHP, лучше разберемся во всем на примере. Исчерпывающее описание всех выражений и функций ты найдешь на нашем CD, а также на сайтах, указанных в боковой врезке. Открыв базу данных, можно начинать работу с ней - к примеру, вывести все имеющиеся записи. Для этого необходимо получить ключ первой записи при помощи функции dba_firstkey(), которая принимает единственный параметр - дескриптор базы данных. Затем, при помощи функции dba_fetch(string key, int handle), которая возвращает значение записи по указанному ключу, мы получим содержимое записи, выведем его и перейдем к следующей записи, получив указатель на нее при помощи функции dba_nextkey(). Стоп. Я сказал, что получив данные конкретной записи, мы выводим ее содержимое. Но как же мы можем это сделать, если значение записи - это сериализованный массив? Тут-то нам на помощь и приходит функция unserialize(), воссоздающая исходный массив. После этого мы можем выводить в нужной последовательности необходимые данные. Чтобы было яснее, давай напишем простую функцию, которая будет выводить все содержимое БД: Функция, выводящая содержимое БД Function review($dbpath, $dbtype) { $dbp=dba_open($dbpath, "r", $dbtype); /* Открывает БД на чтение */ if (!$dbp) { /* Если не удалось подключить файл БД */ |