Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кухаренко В В.doc
Скачиваний:
6
Добавлен:
04.05.2019
Размер:
3.49 Mб
Скачать

2.3.2 Форма ввода. Извлечение информации из базы данных

Для создания администраторского блока понадобится отдельная папка, которая будет содержать такие же файлы, как и основная корневая папка сайта. После создания папки Admin надо скопировать в нее папку blocks, файл index.php и файл style.css. Соответственно если перейти в папку admin в браузере не будет никаких изменений. В фале index.php, вместо всей информации в основной части можно написать стройку: «Добро пожаловать в администраторский блок», что бы пользователь знал, где он находится.

Что бы редактировать информацию, ее нужно куда-то вывести, для этого создается отдельный файл с именем form_edit.php, его можно не создавать а просто сохранит файл index.php с таким именем. В блоке main надо создать форму ввода\вывода на которую и будет выводиться информация из базы. Форма будет состоять из четырех полей: Название страницы, Описание, ключевые слова и текст страницы. Первые три поля это обычные текстовые поля <input> c именем ‘text’, а последние поле это текстовая область <textarea>. Еще понадобится скрытое поле для синхронизации всего процесса редактирования страниц. Называется оно также как и текстовое поле, только параметр type равен ‘hidden’ (скрытое поле), подробнее о его работе чуть дальше Для активации формы понадобиться кнопка, в параметрах которой надо поставить маркер Action = Submit form, что означает - выполнить форму. После создания формы можно приступать к ее заполнению, а заполняться форма будет информацией из базы.

Что бы извлечь информацию из базы используется функция mysql_query(); с оператором SELECT. Помимо этого оператора, эта функция поддерживает операторы: INSERT – оператор вставки, UPDATE – оператор обновления, DELETE – оператор удаления. В этом файле будет использоваться только оператор выборки SELECT, т.к. здесь надо только показать информацию, а обновлением этой информации будет заниматься другой файл. Для работы этой функции необходимо подключение к базе.

Подключение к базе будет использоваться не только в этом фале, поэтому лучше создать его в отдельном файле а потом просто подключить функцией include();. Для этого создается файл db.php, расшифровывается как date base, т.е. база данных. Все файлы лучше назвать осмысленными именами что бы потом не было путаницы. В этом фале прописывается только PHP-код с подключением к базе. Для подключения к серверу MySql используется функция mysql_connect();, в которой надо указать хостинг, пользователя базы и его пароль. После того как эта функция сработает она выдаст идентификатор подключения, который нужно занести в какую-нибудь переменную, поэтому перед функцией надо прописать переменную $db и прировнять ей функцию. После подключения к базе MySql нужно выбрать нашу базу, так как на сервере обычно не одна база. Для этого используется функция mysql_select_db();, в ней надо указать имя базы и идентификатор, т.е. переменную $db. После выполнения этих шагов подключение к базе выполняется именно с пользователя, который указан в первой функции. У меня этот файл выглядит так:

Рис. 2.17 Файл db.php Подключение к базе

После этого сохраняем этот файл в папку blocks, содержащую фалы, которые в дальнейшем будут подключаться к основным документам.

Теперь надо подключить этот файл к документу с именем form_edit.php. Это делается уже известным способом через функцию include();.

В файле form_edit.php, в блоке main перед кодом формы нужно открыть блок кода PHP и сделать выборку из базы данных. Для этого создается переменная $result в которую помещается результат работы функции mysql_query();. В этой функции указывается оператор выборки SELECT, потом надо указать поля которые хотим выбрать, т.к. нам нужны почти все поля можно указать «*»(звездочку) что означает - выбрать все поля. Дальше указываем из какой таблицы «FROM» и пишем имя таблицы «settings», и на последок слово WHERE (где), то есть условие – «id=$id», про это чуть дальше.

В результате работы этой функции в переменную $result попадает своего рода массив, но работать с ним как с массивом не получится, поэтому надо сделать из него нормальный массив. Для этого используется функция mysql_fatch_array();, которая преобразует данные полученные в результате работы функции mysql_query в массив. В параметрах этой функции нужно указать перемену в которую помещен результат работы функции mysql_query, т.е. переменную $result. И соответственно нужно создать еще одну переменную в которую занесется полученный массив, у меня это переменная $myrow. В результате выполнения этих шагов должны получиться такие вот строчки:

Рис. 2.18 Выборка из базы данных

Теперь нужно разместить полученные переменные в форму, что бы при входе на страницу все поля были заполнены. После создания текстовых полей значения value должны были остаться пустыми, это параметр, который отвечает за заполнение текстового поля по умолчанию. В эти параметры нужно прописать переменные из массива, для каждого текстового поля своя переменная. Для первого, это название страницы, параметр value будет выглядеть так: «value=’$myrow[title]’», аналогично для других полей. А в скрытое поле помещается переменная $myrow[id]. Но у текстовой области нет такого параметра, так как это закрывающийся тег и его содержание указывается между тегами, поэтому переменную надо ввести между тегами <textarea>. В результате выполнения этих шагов у меня получился такой код:

<?php

$result = mysql_query("SELECT * FROM settings WHERE id=$id");

$myrow = mysql_fetch_array($result);

echo "<form name='form1' method='post' action='obrabotchik.php'>

<p>

<label>Название страницы<br>

<input value='$myrow[title]' name='title' type='text' id='title' size='60'>

</label>

</p>

<p>

<label>Описание страницы<br>

<input value='$myrow[meta_d]' name='meta_d' type='text' id='meta_d' size='60'>

</label>

</p>

<p>

<label>Ключевые слова<br>

<input value='$myrow[meta_k]' name='meta_k' type='text' id='meta_k' size='60'>

</label>

</p>

<p>

<label>Текст страницы<br>

<textarea name='text' id='text' cols='75' rows='20'>$myrow[text]</textarea>

</label>

</p>

<input name='id' type='hidden' value='$myrow[id]'>

<p>

<input type='submit' name='submit' id='submit' value='Внести изменения'>

</p>

</form>

";

Табл. 2.2 Код заполненной формы

?>

В браузере эта страница выглядит так:

Рис. 2.19 Вид формы в браузере