|
PHP: разрабатываем свой xForum Никита "Nikitos" Кислицин Xakep, номер #050, стр. 050-086-2 Также есть таблица "xanswer", в которой хранятся все ответы на каждую из дискуссий. Она имеет следующую структуру: aid int not null auto_increment primary key, pid int, answer text, author_name varchar (50), author_email varchar (50), date date, time varchar(20), ip varchar(30), где aid расшифровывается как answer id. Следует заметить, что "xanswer" - плохо структурированная таблица-помойка, в которой складируются ответы на все темы. В общем-то, такая организация таблиц, наверное, не является оптимальной. Хотя, можно выйти из положения с помощью динамического создания новых таблиц: при открытии новой темы создавалась бы еще одна таблица, в которой хранится нить беседы по одной теме. Правда, в этом случае помойка творилась бы в самой БД, что крайне нежелательно. Язык же SQL чрезвычайно гибок и позволяет, не замечая того, эффективно отбирать из "помойки" нужные сообщения. Третья таблица используется для хранения информации об администраторах и имеет следующие поля: uid int not null auto_increment primary key, admin_name varchar(30), admin_email varchar(30), access int. uid расшифровывается как user id. Итак... Форум будет представлять собой компактную систему из двух скриптов - forum.php и admin.php. Первый – это ядро форума, второй позволяет этот форум администрировать. Coding Напомню, описание функций в общем виде осуществляется следующим образом: function name([$using_var1, $using_var2, ...]) { function_code; return $return; } Служебное выражение "function name" объявляет функцию с именем name. В круглых скобках указываются принимаемые параметры. Они могут быть опущены, если функция таковых не использует. Процедура возвращает выражение, следующее за служебным словом return, которое также может отсутствовать. В качестве примера приведу функцию, которая вычисляет площадь прямоугольника по его сторонам $a и $b. Function square ($a, $b) { return $a*$b; } Вызов процедуры в программе выглядит следующим образом: <? Echo square(10, 43); ?> Такой код, очевидно, выведет на экран 10*43=430. Но вернемся к теме нашей беседы. В скрипте forum.php я описываю ряд функций, которыми буду манипулировать в самой программе. Ниже я подробно остановлюсь на ключевых моментах скрипта и новых используемых выражениях. Разобраться с хтмлом и уже обсуждаемыми ранее конструкциями - не очень сложная задача, с которой ты, на мой взгляд, справишься. Функция addmessage($messg,$name,$email) добавляет в БД новую тему $messg, написанную человеком по имени $name, имеющим электронный адрес $email. Дата и время создания сообщения определяются при помощи функции date(params), возвращающей строку, используя указанный шаблон, в который можно подставлять символы, указывающие на некоторый текущий временной параметр (год, месяц, день, час и т.д.). Параметры могут быть самыми разными. Подробнее об этом можно почитать на моем сайте http://nikitos.inc.ru. |