Заходи
Гость

Хостинг

Статистика
Яндекс.Метрика Счетчик PR-CY.Rank
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Ccылки

Свежак

Создание собственного PHP-скрипта для управления базой данных


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

mysql_connect (имя_сервера, имя_пользователя, пароль) – открывает соединение с сервером, все параметры необязательны и зависят от настроек сервера;

mysql_select_db (имя_базы, указатель_на_соединение) – выбирает базу данных, указатель необязателен, если внутри скрипта происходит работа только с одной базой данных.

Таким образом, начало нашего скрипта (опуская стандартные html-теги) будет выглядеть следующим образом с учетом того, что пароль для пользователя root в Денвере не определен, а сама база данных располагается на сервере localhost:

mysql_select_db("fruit", mysql_connect("localhost", "root"));

Ранее в разделе 2. мы уже создали базу данных и знаем все ее поля. Исходя из этого, рассмотрим код отображения формы, которая позволит нам как добавлять новые значения в таблицу, так и редактировать уже загруженные:

 

 

<?

function display_form () {

// Надпись на кнопке отправки формы по (умолчанию)

$submit_msg = "Добавить";

?>

<form method="post" action="<? echo $_SERVER['PHP_SELF'] ?>">

<?

if ($_REQUEST["id"]) {

$sql = "SELECT * FROM fruits WHERE

id=".$_REQUEST["id"];

$tr = mysql_fetch_array(mysql_query($sql));

?>

<input type=hidden name="id" value="<? echo $tr["id"] ?>">

<?

// Надпись на кнопке отправки формы (новая)

$submit_msg = "Изменить";

} // конец if

?>

Название фрукта: <input type="Text" name="name"

value="<? echo $tr["name"]; ?>"><br>

Штрих-код: <input type="Text" name="code"

value="<? echo $tr["code"] ?>"><br>

Цена: <input type="Text" name="price"

value="<? echo $tr["price"]; ?>"><br>

Страна происхождения: <input type="Text" name="country"

value="<? echo $tr["country"]; ?>"><br>

<input type="submit" name="submit"

value="$submit_msg; ?>">

</form>

} // конец функции display_form() ?>

 

 

 

В приведенном коде нам знакомы практически все конструкции за исключением следующих:

mysql_query(SQL-запрос, указатель_на_базу_данных) – возвращает результат обработки базой данных SQL-запроса;

mysql_fetch_array(результат_SQL-запроса) – обрабатывает результата запроса, возвращая ассоциативный массив.

В случае, если в скрипт передается уникальный идентификатор записи id, производится получение данных этой записи в ассоциативный массив $tr, элементы которого затем используются при формировании формы. Как мы увидим дальше, уникальный идентификатор поступает в скрипт в двух случаях: при изменении либо при удалении элемента. При операции изменения (до и после) данные будут выводиться в форму, а при удалении ничего не будет выводиться, так как вывод формы (см. следующий блок кода) идет после операции удаления и на запрос по несуществующему к тому моменту уникальному идентификатору база выдает пустой ответ:

 

if ($_REQUEST["submit"]) {change_db();}

print_list();

display_form();

 

 

 

В приведенном листинге мы видим основное тело программы. В случае отправки данных формы или удаления в скрипт передается переменная submit, которая инициирует вызов функции

change_db(), производящей изменения в базе данных. Функция print_list() выводит текущее содержание изучаемой нами таблицы и формирует управляющие ссылки для операций изменения и удаления записей.

Рассмотрим функцию change_db():

 

 

<?

function change_db() {

/* Функция будет выполняться, только если все поля формы запол-

нены

или планируется удаление записи */

if (($_REQUEST['name']

&& $_REQUEST['code']

&& $_REQUEST['price']

&& $_REQUEST['country']))

|| ($_REQUEST["submit"] == 'delete')){

// Введение сокращенных имен

$name = $_REQUEST['name'];

// для переданных данных. Если планируется

// удаление, то переменные будут пустыми

$code = $_REQUEST['code'];

$price = $_REQUEST['price'];

$country = $_REQUEST['country'];

if (!$_REQUEST["id"]) {

// id нет только если добавляется новая запись

$sql = "INSERT INTO fruits (name, code, price, country)

VALUES ('$name', $code, $price, '$country')";

$info_msg = "Запись добавлена";

} else if ($_REQUEST["submit"] == 'delete') {

// обработка вызова на удаление

$sql = "DELETE FROM fruits

WHERE id=".$_REQUEST['id'];

$info_msg = "Запись N" . $_REQUEST['id'] . " удалена";

} else {

// в остальных случаях подразумевается

// изменение записи

$sql = "UPDATE fruits SET name='$name', code=$code,

price=$price, country='$country'

WHERE id=".$_REQUEST['id'];

$info_msg = "Запись изменена";

}

mysql_query($sql);

echo '<p style="background-color:#FF9999;

border: red 1px solid; padding:2px 6px;">' .

$info_msg . "</p>";

} // конец перового if

} // конец функции change_db() ?>

 

 

Как можно заметить, в зависимости от входящих условий формируется SQL-запрос и информационное сообщение, которые потом соответственно выполняются и выводятся пользователю. И наконец, рассмотрим функцию вывода данных из таблицы print_list():

 

 

<? function print_list(){

echo "<table border=1>

<tr><th>id</th><th>code</th><th>name</th>

<th>price</th><th>country</th>

<th colspan=2>Редактирование</th></tr>";

$result = mysql_query("SELECT * FROM fruits");

while ($tr = mysql_fetch_array($result)) {

printf("<tr><td>%s</td><td>%s</td><td>%s</td>

<td>%s</td><td>%s</td>", $tr['id'], $tr['code'],

$tr['name'], $tr['price'], $tr['country']);

printf("<td><a href=\"%s?id=%s\">(изменить)</a>

</td>", $_SERVER['PHP_SELF'], $tr['id']);

printf("<td><a href=\"%s?id=%s&submit=delete\">

(удалить)</a></td></tr>",

$_SERVER['PHP_SELF'], $tr["id"]);

}

echo "</table>";

echo '<a href="' . $_SERVER['PHP_SELF'] . '">

Новая запись</a>';

} // конец функции print_list()

?>

 

 

В приведенном коде первый оператор echo формирует заголовок таблицы. Второй извлекает все данные из таблицы, а третий в цикле формирует строки таблицы. После чего таблица закрывается и добавляется строка, позволяющая создать новую запись (загрузить пустую форму). Здесь мы видим интересную функцию printf(строка-шаблон, переменные), которая выводит данные в соответствии с заранее заданным шаблоном (%s в строке заменяется на переменную в соответствии с порядком упоминания), что позволяет существенно упрощать описание вывода данных в HTML-документ.

Пример визуализации скрипта приведен на рис. 6.

Результат визуализации работы скрипта управления базой данных

Если все перечисленные выше функции будут помещены в один файл, то в итоге будет подготовлен работоспособный скрипт.

Поиск

Статьи
[Прогараммирование]
Как работает CSS?
[Прогараммирование]
ЛЕКЦИЯ. Язык Pascal
[Прогараммирование]
Введение в информатику
[Прогараммирование]
Разработка ПО с открытыми исходными текстами как особый вид прикладной науки
[Безопасность систем]
Защита исходных текстов и двоичного кода
[Устронение ошибок систем]
Устранение неполадок при возникновении (синего экрана) Blue Screen Of Death (BSOD) (2)
[Безопасность систем]
Средства отладки и взлома программ
[Разное]
Как избавиться от баннеров раз и навсегда
[Безопасность систем]
Резервирование и восстановление
[Прогараммирование]
ПОДПРОГРАММЫ. ПРОЦЕДУРЫ И ФУНКЦИИ

Категории
HTML/CSS [21]
jQuery/JS [36]
PHP [4]
Для Ucoz [38]

Популярный софт
Iron Kaspersky Internet Security 2015
Kaspersky Internet Security 2015
Iron Virtual DJ
Virtual DJ
Iron SoundForge 11
SoundForge 11
Iron Alcohol 120
Alcohol 120
Iron Norton Internet Security 2014
Norton Internet Security 2014
Iron Loaris Trojan Remover
Loaris Trojan Remover

Жми

Copyright MyCorp © 2024Конструктор сайтов - uCoz