Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

32.9. Практическая реализация

Рассмотрим работу изученных функций на примере. Сначала создадим базу и внесем туда определенные данные, необходимые для дальнейшей работы. Для этого входим в командную строку MySQL и выполняем команды:

mysql> CREATE DATABASE mydatebase;

mysql> CREATE TABLE students

( id tinyint(4) DEFAULT '0' NOT NULL AUTO_INCREMENT,

first varchar (20), last varchar(20), address varchar(255),

position varchar (50), PRIMARY KEY (id), UNIQUE id (id) );

INSERT INTO students VALUES

(1,'Александр','Пушкин','ул Петербургская', 'Писатель');

INSERT INTO students VALUES

(2,'Игорь','Полещук','ул. Пушкина','Профорг');

INSERT INTO students VALUES

(3, 'Виталий','Ивончик','ул. Высокая','Гений группы');

В результате будет создана база данных mydatebase с таблицей students, в которую будут вставлены три записи с данными о студентах.

Теперь выведем эти данные из базы данных. Для этого создадим файл РНР, который будет содержать следующий скрипт:

<html>

<body>

<?php

$date = mysql_connect("localhost", "root"); mysql_select_db("mydatebase", $date);

$my_result = mysql_query("SELECT * FROM students", $date);

printf("Имя: %s<br>\n", mysql_result($my_result, 0, "first"));

printf("Фамилия: %s<br>\n", mysql_result($my_result, 0, "last"));

printf("Улица: %s<br>\n", mysql_result($my_result, 0, "address"));

printf("Должность: %s<br>\n", mysql_result($my_result, 0, "position"));

mysql_close($date);

?>

</body>

</html>

Данный скрипт позволяет получать данные, содержащиеся вбазе. Рассмотрим последовательность операций, выполняемых в скрипте. Прежде чем получить доступ к базе данных, необходимо произвести соединение с указанными параметрами. Для этого используется функция mysql_connect(), которая создает связь с сервером баз данных MySQL. В качестве параметров указано имя узла localhost, на котором находится база данных, имя пользователя — root, под которым мы будем с ней работать. Очень часто в качестве третьего параметра функции mysql_connect() задают пароль соединения. В нашем случае он не был указан.

В результате выполнения данной функции получим некое значение, которое будет присвоено переменной $date. Эту переменную называют идентификатором соединения. С учетом полученного значения можно сделать вывод о результате соединения с сервером MySQL.

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

В результате выполнения функции mysql_select_db() получаем значение true или false. Если соединение с базой данных прошло успешно — true, если нет — false. Чтобы наша программа-страница работала лучше, можно проанализировать возвращаемое значение, и если оно будет false, вывести сообщение об ошибке.

После того как все необходимые операции соединения с базой данных выполнены, можно получить необходимые данные. Для этого служит функция mysql_query(). В качестве первого параметра передаем текст запроса, а в качестве второго — идентификатор, полученный от выполнения функции mysql_connect().

Результаты выполнения функции mysql_query() — записи, удовлетворяющие нашему запросу — помещаем в переменную $my_result.

И наконец, с помощью функции mysql_result() извлекаем из результатов выполнения нашего запроса (т. е. переменной Smy_result), первый ряд-запись (который имеет порядковый номер 0), и значение определенного поля (по его имени). Перебирая друг задругом записи от 0 до 2, извлечем все записи, которые хранятся в нашей маленькой базе данных.

Вот так легко можно работать с базой данных в РНР.

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

<html>

<body>

<form method="post" action="<?php echo $PHP_SELF?>">

Имя: <input type = "Text" name = "first"><br>

Фамилия: <input type = "Text" name = "last"><br>

Улица: <input type = "Text" name = "address"><br>

Должность: cinput type ="Text" name = "position"><br>

<input type = "Submit" name = "submit" value="Ввод информации">

</form>

<body>

<html>

Обратите внимание, мы опять используем переменную SPHP_SELF. Как уже говорилось, PHP-код можно как угодно включать в обычный HTML. Также обратите

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

Помимо этого мы присвоили имя кнопке «Submit». Это сделано, чтобы в коде затем проверить, есть ли переменная $suhmit. Таким образом, когда страница будет вызываться, можно узнать, вызывается ли она в первый или во второй раз.

Следует еще раз отметить, что вовсе не обязательно писать код так, чтобы страница снова и снова вызывала саму себя. Программу можно разделить на две, три и более страниц, если угодно. Но чаще бывает удобнее, когда вся программа находится в одном файле.

Теперь введем данным в базу:

<html>

<body>

if (submit) {

    $date = mysql_connect ("localhost", "root");

    mysql_select_db("mydatebase", $date);

    $sql = "INSERT INTO students (first, last, address, position) VALUES

    ('$first', '$last', '$address', '$position')";

    $result = mysql_query($sql);

    echo "Спасибо! Ваша информация введена\n";

    }

    else {

?>

<form method="post" action="<?php echo $PHP_SELF?>">

Имя: <input type = "Text" name = "first"><br>

Фамилия: <input type = "Text" name = "last"><br>

Улица: <input type = "Text" name = "address"><br>

Должность: <input type = "Text" name = "position"><br>

<input type = "Submit" name = "submit" value = "Ввод информации">

</form>

<?php

}

?>

</body>

</html>

<< Предыдущий параграф Следующий параграф >>
Оглавление