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');

Похожие посты

2 комментария

  • Dark
    5 лет назад

    Что-то нет самой функции…

    • username
      5 лет назад

      Ага, пасип, видимо косяк в плагине на сайте, не отображал код.

Комментировать

Комментировать email не будет опубликован