Смекни!
smekni.com

Этапы создания веб-приложения. Основы РНР и MySQL (стр. 6 из 6)

mail($adminaddress,$subj,$text);

?>

Вот теперь пользователь будет получать письмо с более подробной информацией о наших товарах. Также письмо получит и администратор сайта.

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

3.2.2. Сохранение данных в базе данных MySQL

Для начала создаем базу данных productsи таблицу clients.

Чтобы создать в системе базу данных, нужно войти в систему MySQL и ввести в командной строке MySQL:mysql> createdatabaseproducts;

База данных создана:

После этого следует набрать:mysql>useproducts;

Следующий этап настройки базы данных — создание таблиц. Это делается при помощи SQL-команды CREATETABLE:

CREATE TABLE clients

(

name VARCHAR(25),

email VARCHAR(25),

choise VARCHAR(8)

);

Таблицы базы данных созданы:


Можно просмотреть перечень таблиц созданной базы данных c помощью оператора SHOW.

Можно отобразить информацию о столбцах всех таблиц c помощью оператора DESCRIBE.

Для просмотра данных, сохраненных в каждой таблице, можно применить оператор SELEKT.

Все этапы создания базы данных с таблицами отражены на экране командной строки:


Для общения с MySQL из PHP понадобятся следующие функции:

1. СоздатьсоединениесMySQL.

int mysql_connect(string hostname, string username, string password);

Параметры функции:

Hostname – имя хоста, на котором находится база данных.

Username – имя пользователя.

Password – пароль пользователя.

Функция возвращает параметр типа int, который больше 0, если соединение прошло успешно, и равен 0 в противном случае.

2. Выбрать базу данных для работы.

int mysql_select_db(string database_name, int link_identifier);

Параметры функции:

Database_name – имя базы данных.

link_identifierID соединения, которое получено в функции mysql_connect. (параметр необязательный, если он не указывается, то используется ID от последнего вызова mysql_connect)

Функция возвращает значение true или false

3. Функция выполняет запрос к базе данных.

int mysql_query(string query, int link_identifier);

Параметры функции:

Query – строка, содержащая запрос

link_identifier – см. предыдущую функцию.

Функция возвращает ID результата или 0, если произошла ошибка.

4. Функция закрывает соединение с MySQL.

int mysql_close(int link_identifier);

Параметры функции:

link_identifier – см. выше.

Функция возвращает значение true или false

Теперь файл email.php будет иметь следующий вид:

Листинг email_1.php

<?

/* Этот скрипт получает переменные из request.html */

/* Переменные для соединения с базой данных */

$hostname = "localhost";

$username = "myusername";

$password = "mypassword";

$dbName = "products";

/* Таблица MySQL, в которой хранятся данные */

$userstable = "clients";

/* email администратора */

$adminaddress = "administration@me.com";

/* создатьсоединение */

mysql_connect($hostname,$username,$password) OR DIE("Немогусоздатьсоединение ");

/* выбрать базу данных. Если произойдет ошибка – вывести ее */

mysql_select_db($dbName) or die(mysql_error());

echo "<CENTER>";

echo "Привет, ".$_POST['name'];

echo "<BR><BR>";

echo "Спасибо за ваш интерес.<BR><BR>";

echo "Васинтересуют ".$_POST['preference'].". Информацию о них мы пошлем вам на email: ".$_POST['email'];

echo "</CENTER>";

/* Отправляем email-ы */

$subj = "Запрос на информацию";

$text = "Уважаемый ".$_POST['name']."!

Спасибо за ваш интерес!

Вас интересуют ".$_POST['preference']."

Мы их распространяем бесплатно.

Обратитесь в ближайший филиал нашей компании и получите ящик этого продукта.";

mail($_POST['email'], $subj, $text);

$subj="Поступил запрос на информацию";

$text = $_POST['name']." интересовали ".$_POST['preference']." email-адрес: ".$_POST['email'];

mail($adminaddress, $subj, $text);

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

$query = "INSERT INTO $userstable VALUES('$name','$email', '$preference')";

/* Выполнить запрос. Если произойдет ошибка – вывести ее. */

mysql_query($query) or die(mysql_error());

echo "Информация о вас занесена в базу данных.";

/* Закрыть соединение */

mysql_close();

?>

Вот так можно работать с базой данных в PHP. Теперь кроме письменных уведомлений, информация о клиенте и его интересах будет заноситься в таблицу MySQL.

3.2.3. Получение (извлечение) данных из базы данных MySQL

После занесения данных, нас иногда будет интересовать вопрос: так кого же из наших клиентов интересует товар “Яблоки”

Напишем скрипт apple.php.

Листинг apple.php

<?

/* Скрипт показывает клиентов, которые яблоки любят больше чем апельсины */

/* Переменные для соединения с базой данных */

$hostname = "localhost";

$username = "myusername";

$password = "mypassword";

$dbName = "products";

/* Таблица MySQL, в которой хранятся данные */

$userstable = "clients";

/* создатьсоединение */

mysql_connect($hostname,$username,$password) OR DIE("Немогусоздатьсоединение ");

/* выбрать базу данных. Если произойдет ошибка – вывести ее */

mysql_select_db($dbName) or die(mysql_error());

/* составить запрос, который выберет всех клиентов – яблочников */

$query = "SELECT * FROM $userstable WHERE choise = 'Яблоки'";

/* Выполнитьзапрос. Еслипроизойдетошибкавывестиее. */

$res = mysql_query($query) or die(mysql_error());

/* Как много нашлось таких */

$number = mysql_num_rows($res);

/* Напечатать всех в красивом виде*/

If ($number == 0) {

echo "<CENTER><P>Любителейяблокнет</CENTER>";

} else {

echo "<CENTER><P>Количестволюбителейяблок: $number<BR><BR>";

/* Получать по одной строке из таблицы в массив $row, пока строки не кончатся */

while ($row=mysql_fetch_array($res)) {

echo "Клиент ".$row['name']." любитЯблоки.<BR>";

echo "Его Email: ".$row['email'];

echo"<BR><BR>";

}

echo"</CENTER>";

}

?>

Вот и все, продукт практически готов.