Приднестровская поддержка XOOPS
Математические операторы:
□ + — сложение:
SELECT 8 + 5;
□ - — вычитание:
SELECT 10 - 5;
□ * — умножение:
SELECT 10 * 5;
□ / — деление:
SELECT 10 / 5;
/* Выведет: 2.0000 */
□ DIV — целочисленное деление:
SELECT 10 DIV 5;
/* Выведет: 2 */
SELECT 10 DIV 3;
/* Выведет: 3 */
□ % — остаток от деления:
SELECT 10 % 2;
/* Выведет: 0 */
SELECT 9 % 2;
/* Выведет: 1 */
□ MOD — остаток от деления:
SELECT 10 MOD 2;
/* Выведет: 0 */
Вместо операторов % и MOD можно использовать функцию MOD().
SELECT MOD(10, 2);
/* Выведет: 0 */
Следует отметить, что если один из операндов равен NULL, то результат операции также будет равен NULL. В отличие от языков программирования деление на ноль не приводит к генерации сообщения об ошибке. Результатом операции деления на ноль является значение NULL.
Если необходимо сменить знак, то перед операндом следует указать знак – (минус):
SELECT -(-5);
/* Выведет: 5 */
В качестве примера рассмотрим возможность подсчета переходов по рекламной ссылке. Для этого создадим таблицу counter в базе данных tests:
CREATE TABLE `counter` (
`id_link` INT NOT NULL AUTO_INCREMENT,
`total` INT,
PRIMARY KEY (`id_link`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;
Затем добавим одну запись:
INSERT INTO `counter` VALUES (1, 0);
Для подсчета переходов в тексте ссылки укажем идентификатор в базе данных и URL-адрес:
<html>
<head>
<title>Подсчет переходов по ссылкам</title>
</head>
<body>
<a href="go.php?id=1&url=http://www.mail.ru/">Перейти</a>
</body>
</html>
Регистрация переходов производится в файле go.php. Исходный код файла приведен в листинге 1.
Листинг 1. Регистрация переходов по ссылке
<?php
if (!isset($_GET['id']) || !isset($_GET['url'])) die('Ошибка');
$id = $_GET['id'];
if (preg_match('/^[0-9]+$/s', $id) && $id != 0) {
if ($db = @mysql_connect("localhost", "root", "123456")) {
mysql_select_db("tests");
$query = 'UPDATE `counter` SET `total` = `total` + 1 ';
$query .= 'WHERE `id_link`=' . $id;
@mysql_query($query);
mysql_close($db);
}
}
header('Location: ' . $_GET['url']);
?>
Использование оператора + позволяет произвести увеличение счетчика за один запрос. Иначе пришлось бы вначале получить значение из базы данных, затем увеличить его и только во втором запросе обновить значение в базе данных.
Отправитель | Нити |
---|
11 пользователь(ей) активно (7 пользователь(ей) просматривают Инструкции)
Участников: 0 Гостей: 11 далее... |