-->
   
-->

Главная

ТАРИФЫ ХОСТИНГА
АРЕНДА СЕРВЕРОВ
КЛИЕНТАМ
ТЕХ. ПОДДЕРЖКА
РЕССЕЛЕРАМ
ПРОГРАММЫ И УСЛУГИ
ИНФОРМАЦИЯ
О КОМПАНИИ

  

PHP и MySQL на примере

 

Опубликовано:
28.12.05

Источник: http://webhowto.ru/

PHP и MySQL на примере

 

PHP, обзорная статья о котором есть на нашем сервере, умеет не только рассылать сообщения о том, что яблоки распространяются бесплатно. На самом деле это довольно мощная вещь, позволяющая создавать крупные коммерческие системы, в том числе и корпоративные информационные системы (естественно, вкупе с MySQL). Все это рано или поздно будет казаться довольно легким, но сейчас, как я полагаю, вы ограничились написанием скрипта-примера, который у вас не работает, потому что путь к sendmail (которого на Windows-платформах нет) указан неверно. Мне всегда казалось, что разобранный текст скрипта помогает всегда лучше, чем просто хелп...

Как вы знаете, с помощью великого и ужасного .htaccess можно настроить в качестве интерпретируемых как PHP файлов файлы с расширениями .php, .php3, .php4, .phtml (естественно, можно настроить и файлы .prikol, просто эти - наиболее часто используемые). Если желаете, можно даже считать таковыми файлы .html, достаточно просто прописать в .htaccess следующее:

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

Я крайне не рекомендую этого делать, советую называть файлы PHP так, чтобы расширением было .php. Эта рекомендация связана с тем, что файл .php явно является скриптом, в отличие от html, который запросто может и не содержать скриптовых включений (а нагрузка на сервер остается). По этой же причине я не советую и настраивать .html файлы на исполнение Includes (SSI), но тут уж выбор за вами. В крайнем случае в файл .shtml можно добавить PHP-включение стандартной директивой

<!--#include virtual="privet.php" -->

Ни коем случае не пытайтесь назначать файлы одного расширения сразу и на интерпретацию PHP, и SSI! Это приведет к непредсказуемым последствиям. Как вы уже догадались, подключение к MySQL производится двумя командами: сначала соединяемся с сервером MySQL, потом выбираем используемую базу данных, вот так:

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

@mysql_select_db("$dbName") or die("Не могу выбрать базу данных ");

Переменные, отвечающие за пароль, логин и прочее, лучше задавать отдельно. Собака перед командой означает то, что сообщения об ошибках этой команды не выводятся. Не забудьте потом закрыть соединение с MySQL!

mysql_close();

Вот так. Теперь самое интересное. Как выясняется, вы можете довольно просто манипулировать содержимым базы данных с помощью команды mysql_query. Например, мы создаем простую формочку с полями name, email и password:

<html>
<body>

<form action=database.php method=post>
Your name:<br>
<input type=text name=name><br>
Your e-mail:<br>
<input type=text name=email><br>>
Your password:<br>
<input type=password name=password><br>
<input type=checkbox name=del> Delete<br>
Drop?
<input type=text name=drop><br>
<input type=submit>
</form>
</body>
</html>

После этого мы должны создать файл database.php, обрабатывающий эти данные. Нетрудно догадаться, что в нем мы будем иметь готовые переменные name, email, password, drop, del, которые и предстоит обработать. Обработка будет заключаться в том, что если галочка "Del" не установлена, то значение в БД добавляется, иначе - удаляются все такие значения (должны полностью соответствовать все три основных поля).

<?
$username="mixailo";
$passwd="passwd";
$dbname="clients";
$hostname="localhost";

MYSQL_CONNECT ($hostname, $username, $passwd) or
die ("Cannot connect to database...");

@mysql_query("create database clients");

@mysql_select_db($dbname) or die ("cannot select database");

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

mysql_query("create table clients (name varchar(15), email varchar(35),
password varchar(15))") or ($err = MYSQL_QUERY("select *
from clients") or die ("can't create table"));

Теперь проверяем, отмечена ли галочка del

if (empty($del))

И если она пуста, то добавляем значения в таблицу

{
mysql_query("insert into clients values ('$name', '$email',
'$password')") or die ("Cannot insert values");
}

Иначе пытаемся удалить значения, точно соответствующие шаблону:

elseif (!empty($del))
{
mysql_query("delete from clients where name='$name' and
email='$email' and password='$password'") or die ("Can't delete");
}

Проверяем, написал ли пользователь в поле drop слово "drop", если да - удаляем из БД всю таблицу:

if ($drop=="drop")
{
MYSQL_QUERY("DROP TABLE clients") or
die ("cannot drop");
}

В принципе, теперь осталось только закрыть соединение и написать закрывающий тег ?>, но мы ведь хотим посмотреть, что у нас получилось? Делаем так:

$vopr=mysql_query("select * from clients") or
die ("No way. Can't select.");
while ($line = mysql_fetch_array ($vopr))

{
print "<hr>";
extract($line);
print"$name,$email,$password";
}
print "<HR>";
mysql_close();

?>

Вот и все, простая программа манипуляции базой данных готова. Замечу, что восклицательный знак перед функцией означает логическое НЕ, т.е. !empty($line) означает "НЕ (пустая ли переменная $line?)", и будет иметь значение ИСТИНА (TRUE), если $line непустая. Функция extract(аргумент) выделяет из выдачи MySQL, которую мы не можем просто так распечатать, переменные, соответствующие названиям полей в таблице; в нашем случае это $name, $email, $password - так и называются поля в таблице clients.

Mixailo


Версия для печати

Назад

Проверить домен

ru  com net

Новости компании

02.04.10
Технические работы на сервере!

В пятницу 3-го апреля 2009 г. возможен кратковременный перерыв в работе сервера с 17 до 18 часов в связи с проводимыми техническими работами. ...


08.09.08
ВНИМАНИЕ!!! Пользователям сервера PRO-HOSTING!

В связи с технической необходимостью, мы вынуждены перевезти оборудование из датацентра СТЕК в новый, более современный и удобный датацентр на Остаповском проезде. Переезд оборудования будет осуществл...


15.04.08
Новая рекламная акция нашей компании.

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


01.02.08
Специальная акция "Автоматизируй свой сайт"

Скидка 30% на покупку системы управления сайтом SSPRO. Установка системы управления производится бесплатно. Подробнее о системе управления сайтом смотрите на странице: Система управления сайтом ...


20.12.07
С новым 2008-м годом

Поздравляем всех клиентов и посетителей сайта с новым 2008 годом, желаем успехов в новом году, здоровья и счастья. Коллектив ООО " ССПРО ХОСТИНГ"  ...


06.02.07
Профилактические работы на сервере

Уведомляем Вас о том, что 06/02/2007 на сервере ONLINEHOST.RU администраторами датацентра "STACK" запланировано отключение электропитания, связанное с профилактическими работами на монтажной стойке. Н...



Ваш проект:


Коммерческий
Коммерческий
Коммерческий


2002-2009 (с) ООО "ССПРО Хостинг"
+7 495 77-88-33-9  Карта сайта,
Разработка сайта Cве-Арт | Cms Sspro