NoDeny функция возвращающая тариф, цену, число абонентов с данным тарифом
В общем поставили мне на днях партийное задание, выбрать количество всех абонентов по каждому тарифу, ну дело это житейское, благо знаний хватает в sql, наклепал запросик, все чудно и прикольно, НО, тарифов — то у нас не один и не два, а ручками постоянно перебивать айди тарифа так впадлу, как говорят «лень двигатель прогресса», пришлось сесть и наклепать небольшую php-функцию которая бы по айди тарифа возвращала число абонентов, имя тарифа, цену тарифа.
Кстати, все это дело можно посмотреть в биллинге, но мы же не ищем легких путей!)))
Чтож приступим, сначала создадим файлик db.class.php со следующим содержимым:
class MySQL{ function Query($query){ global $config; $link = mysql_connect($config['db_host'], $config['db_user'], $config['db_passwd']) or die("Could not connect: " . mysql_error()); mysql_select_db($config['db_name']); $result[0] = mysql_query($query) or die("Invalid query: " . mysql_error()); $result[1] = $link; return $result; } function Close($dbcnx){ mysql_close($dbcnx); } }
т.е. мы создали класс для работы с мускулом, писался на скорую руку, поэтому на универсальность и правильность не настаиваю, прошу испрвить если что, так как я начинающий пхп кодер )))))
Теперь создадим файл настроек соединения с мускулом, обзовем его config.php
со следующим содержимым:
$config = array( 'db_host' =--> 'localhost', 'db_name' => 'test', 'db_user' => 'test', 'db_passwd' =>; 'test', );
собственно теперь создадим файлик index.php, со следующим содержимым:
include_once ('./config.php'); include_once ('./db.class.php'); function gettarifcount($tarif) { $MySQL = new MySQL(); $sql = "SELECT count(*) count, plans2.name, plans2.price FROM users \n" ." left join plans2 on users.paket=plans2.id where users.grp in (4,5,6) \n" ." and users.paket=$tarif limit 1"; $result = $MySQL->Query($sql); while ($row = mysql_fetch_assoc($result[0])) { echo "Tarif - ". $row[name] .", price - ". $row[price].", abonents - ". $row[count]; } $MySQL->Close($result[1]); } gettarifcount('7');
сначала подключаем наш класс и файл с настройками подключения к БД, далее описываем саму функцию с выборкой, и соответсвенно вызываем ее с параметром равным айди тарифа, у меня например 7:
gettarifcount('7');
Вывод функции примерно такой:
Tarif - [1050]Тестовый тариф, price - 0, abonents - 1
можно использовать ее несколько раз, для вывода числа абонов по разным пакетам:
gettarifcount('7'); gettarifcount('11'); gettarifcount('22');
Поделись с друзьями:
Рубрики: FreeBSD, NoDeny · Теги: nodeny, php, sql, абоненты, тарифы
03.04.2014 в 05:31
· Ссылка
Что-то нет самой функции...
04.04.2014 в 10:31
· Ссылка
Ага, пасип, видимо косяк в плагине на сайте, не отображал код.