Смекни!
smekni.com

Информационно-обучающий сайт по ТОЭ/ТЭЦ (стр. 3 из 4)

· логический тип (boolean),

· строковый тип (string)

· специальный тип NULL.

К нескалярным типам относится

· «ресурс» (resource),

· массив (array)

· и объект (object).

Среди наиболее часто используемых возможностей PHP стоит отметить следующие:

· имеется большой набор функций для работы со строками;

· работа с регулярными выражениями PCRE.

· работа с базами данных, осуществляемая посредством модулей:

- php5-mysql для MySQL,

- php5-pgsql для PostgreSQL

- и др.

· для PHP разработаны средства шаблонирования веб-страниц, позволяющие эффективно разделить представление от модели, например Smarty;

· имеется библиотека для работы с графическими изображениями GD, позволяющая производить преобразования с графическими файлами, и создавать изображения «на лету».

Вот пример формы, которая передает эти пременные:

<form action ="mail.php" method="POST" name="form1">

<br>Введите ФИО:<br>

<input type="text" name="fio" >

<br>Введите email:<br>

<input type="text" name="email">

<br>Укажите тип доставки:<br>

<select name="delivery" size="1">

<option>Срочная

<option>Обычная

</select>

<br>Введите свой домашний адрес:<br>

<textarea name="address" rows="5" cols="30">

</textarea>

<br>

<br>Введите условие задачи:<br>

<textarea name="condition" rows="10" cols="30">

</textarea>

<br>

<input type="submit" value="Отправить">

</form>

Переменные от формы скрипту могут передаваться двумя методами, это: POST и GET.

К операторам выбора относят: условный оператор (if...else) и переключатель (switch). Синтаксис условного оператора: if(condition) statement 1 else statement 2

Условие condition может быть любым выражением. Если оно истинно, то выполняется оператор statement1. В противном случае выполняется оператор statement2. Допустима сокращенная форма записи условного оператора, в которой отсутствуют else и оператор statement2, напимер:

if (!empty($regis)){…}

else{…}

В данном проекте также использовалась возможность работы с базами данных:

MySQL – это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных.

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

Немаловажным фактором является ее бесплатность. MySQL распространяется на условиях общей лицензии GNU (GPL, GNU Public License).

Структурированный язык запросов SQL позволяет производить различные операции с базами данных: создавать таблицы, помещать, обновлять и удалять из них данные, производить запросы из таблиц и т.д. Далее мы последовательно рассмотрим все эти операторы.

CREATE DATABASE

Эта команда создает новую базу данных:

CREATE DATABASE db_name;

Здесь db_name является именем создаваемой базы данных. Для того чтобы создать новую базу данных forum, наберите в строке-приглашении клиента MySQL mysql> эту команду и укажите название базы данных:

mysql> CREATE DATABASE forum;

CREATE TABLE

Команда CREATE TABLE создает новую таблицу в выбранной базе данных и которая в простейшем случае имеет следующий синтаксис:

CREATE TABLE table_name [(create_definition, ...)]

Здесь table_name - имя создаваемой таблицы

ALTER TABLE

Команда ALTER TABLE позволяет изменить структуру таблицы. Эта команда позволяет добавлять и удалять столбцы, создавать и уничтожать индексы, переименовывать столбцы и саму таблицу. Командаимеетследующийсинтаксис:

ALTER TABLE table_name alter_spec

DROP TABLE

Команда DROP TABLE предназначена для удаления одной или нескольких таблиц:

DROP TABLE table_name [ ,table_name,...]

К примеру, для удаления таблицы forums нужно выполнить следующий SQL-запрос:

mysql> DROP TABLE forums;

DROP DATABASE

Команда DROP DATABASE удаляет базу данных со всеми таблицами входящими в её состав:

DROP DATABASE database_name

Удалим, например, базу данных forum:

mysql> DROP DATABASE forum;

INSERT INTO…VALUES

Команда INSERT…VALUES вставляет новые записи в существующую таблицу. Синтаксис команды:

INSERT INTO table_name VALUES (values,…)

После оператора VALUES в скобках через запятую перечисляются значения соответствующих полей таблицы в соответствии с их типами.

DELETE

DELETE FROM table_name [WHERE definition]

Команда DELETE удаляет из таблицы table_name записи, удовлетворяющие заданным в definition условиям, и возвращает число удаленных записей.

Вот как можно удалить все записи из таблицы authors:

mysql> DELETE FROM authors;

Важной частью запросов DELETE, UPDATE и SELECT является оператор WHERE, который позволяет задать условия для выбора записей, на которые будут действовать эти команды. Следующий запрос удаляет из таблицы посетителя, первичный ключ для которого равен 1:

mysql> DELETE FROM authors WHERE id_author = 1;

Условия отбора могут быть значительно сложнее, так в листинге 13.16 удаляются все авторы с паролем '123' и первичный ключ которых превышает 10:

mysql> DELETE FROM authors WHERE passw = '123' AND id_author > 10;

Оператор AND является логическим "и". В запросах можно так же применять логическое или "или".

SELECT

Команда SELECT предназначена для извлечения строк данных из одной или нескольких таблиц и имеет в общем случае следующий синтаксис:

SELECT column,...[FROM table WHERE definition][ORDER BY col_name [ASC | DESC], ...][LIMIT [offset], rows]

Здесьcolumn - имявыбираемогостолбца. Можно указать несколько столбцов через запятую. Если необходимо выбрать все столбцы можно просто указать знак звёздочки *. Ключевое слово FROM указывает таблицу table из которой извлекаются записи. Ключевое слово WHERE определяет, так же как и в операторе DELETE определяет условия отбора строк. Ключевое слово ORDER BY сортирует строки запросов по столбцу col_name в прямом (ASC) или обратном порядке (DESC). Ключевое слово LIMIT сообщает MySQL об выводе только rows запросов начиная с позиции offset.

Для того чтобы посмотреть всю таблицу User_inf выполняется следующий запрос:

mysql> SELECT * FROM User_inf;Для подключения к php базы данных используются стандартные функцию php, как mysql_connect(), одновременно можно подключиться как к одной, так и к нескольким базам, в данном проекте реализуется работа с одной базой данных:

<?php

@mysql_connect("localhost","php","123456");

$sel=mysql_select_db("tec");

$sql="INSERT INTO User_inf(f_name,l_name,data_r,pol,mail) VALUES('".$sname."','".$name."','".$bdate."','".$pol."','".$mail."')";

$res=mysql_query($sql);

$sql="select id_user from User_inf";

$res=mysql_query($sql);

$n=mysql_num_rows($res);

$row=mysql_fetch_($res);

echo $row[$n];

$sql="INSERT INTO User_log(id_user,login,pass) VALUES('".$row[$n]."','".$login."','".$pas."')";

$res=mysql_query($sql);

$sql="INSERT INTO User_town(id_user,town) VALUES('".$row[$n]."','".$town."')";

$res=mysql_query($sql);

mysql_close();

}

}

?>

mysql_select_db – выборбазыданных

mysql_query – посылка запроса, содержание запроса может быть любым, и select и update, delete, insertinto.

На примере показан, insertinto запрос, то есть эта страница регистрации новых пользователей.

ERбазы данных

Исходные тексты страниц:

index.php

<?php

//запустилсессию

session_start();

include "blocks/db.php"; /*Соединяемсясбазой*/

$result = mysql_query("SELECT title, meta_d,meta_k,text FROM settings WHERE page='index'",$db);

$myrow = mysql_fetch_array($result);

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta name="description" content="<?php echo "$myrow[meta_d]" ?>">

<meta name="keywords" content=<?php echo "$myrow[meta_k]"; ?>"">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title><?php echo "$myrow[title]" ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<table width="690" border="0" align="center" bgcolor="#FFFFFF" class="main_border" cellspacing="0" cellpadding="0">

<!--Подключаемшапкусайта-->

<?php include "blocks/header.php" ?>

<tr>

<td><table width="690" border="0" cellspacing="0" cellpadding="0">

<tr>

<!--Подключаем левый блок сайта-->

<?php include "blocks/lefttd.php" ?>

<td width="508" valign="top"><?php echo "$myrow[text]"; ?> </td>

</tr>

</table></td>

</tr>

<!--Подключаемнижнийграфическийэлемент-->

<?php include "blocks/footer.php" ?>

<tr></tr>

</table>

</body>

</html>

files.php

<?php

session_start();

include "blocks/db.php"; /*Соединяемсясбазой*/

$result = mysql_query("SELECT title, meta_d,meta_k,text FROM settings WHERE page='files'",$db);

$myrow = mysql_fetch_array($result);

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta name="keywords" content="<?php echo $myrow['meta_k'] ?>">

<meta name="description" content="<?php echo $myrow['meta_d'] ?>">

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title><?php echo $myrow['title']; ?></title>

<link href="style.css" rel="stylesheet" type="text/css">

</head>

<body>

<table width="690" border="0" align="center" bgcolor="#FFFFFF" class="main_border" cellspacing="0" cellpadding="0">

<!--Подключаемшапкусайта-->

<?php include "blocks/header.php" ?>

<tr>

<td><table width="690" border="0" cellspacing="0" cellpadding="0">

<tr>

<!--Подключаем левый блок сайта-->

<?php include "blocks/lefttd.php" ?>

<td width="508" valign="top"><p><?php echo $myrow['text']; ?></p>

<p>

<?php

mysql_query("SET NAMES = 'cp1251'");

$result = mysql_query("SELECT id,title,meta_d,description,autor,date FROM files",$db);

$myrow = mysql_fetch_array($result);

//если есть файлы - то вывод таблички, иначе сообщение

if (!empty($myrow['id']))

do { printf ( "<table align='center' class='lessons'>

<tr>

<td class='lesson_title'><p class='lesson_name'><a href='view_file.php?id=%s'>%s</a></p>

<p class='lesson_adds'>Датадобавления: %s</p>

<p class='lesson_adds'>Авторфайла: %s</p></td>

</tr>

<tr>

<td>%s</td>

</tr>

/table><br><br>",$myrow["id"],$myrow["meta_d"],$myrow["date"],$myrow["autor"],$myrow["description"]);

}

while ($myrow = mysql_fetch_array($result));

else echo ("<p>На данный момент файлов нет!</p>");

?>

</p>

</td>

</tr>

</table></td>

</tr>

<!--Подключаем нижний графический элемент-->

<?php include "blocks/footer.php" ?>