コード例 #1
0
ファイル: ts.php プロジェクト: msergeev06/mj-msergeev
 public static function getTotalMaintenanceCosts($carID = null)
 {
     if (is_null($carID)) {
         $carID = MyCar::getDefaultCarID();
     }
     $helper = new SqlHelper();
     $query = new Query('select');
     $sql = "SELECT\n\t" . $helper->getSumFunction('COST', 'SUM') . "\nFROM\n\t" . $helper->wrapQuotes(Tables\TsTable::getTableName()) . "\nWHERE\n\t" . $helper->wrapQuotes('MY_CAR_ID') . " = " . $carID;
     $query->setQueryBuildParts($sql);
     $res = $query->exec();
     if ($ar_res = $res->fetch()) {
         return floatval($ar_res['SUM']);
     } else {
         return 0;
     }
 }
コード例 #2
0
 protected static function getTotalRepairPartsCosts($carID = null)
 {
     if (is_null($carID)) {
         $carID = MyCar::getDefaultCarID();
     }
     $sqlHelper = new CoreLib\SqlHelper();
     $fuelTable = Tables\RepairPartsTable::getTableName();
     $query = new Query('select');
     $sql = "SELECT\n\t" . "SUM(" . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('NUMBER') . " * " . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('COST') . ") AS SUMM\n" . "FROM\n\t" . $sqlHelper->wrapQuotes($fuelTable) . "\n" . "WHERE\n\t" . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('MY_CAR_ID') . " = " . $carID;
     $query->setQueryBuildParts($sql);
     $res = $query->exec();
     if ($ar_res = $res->fetch()) {
         $fuelCosts = $ar_res['SUMM'];
         return floatval($fuelCosts);
     } else {
         return 0;
     }
 }
コード例 #3
0
ファイル: fuel.php プロジェクト: msergeev06/mj-msergeev
 /**
  * Возвращает количество израсходованного топлива
  *
  * @param int   $carID
  *
  * @return float
  */
 public static function getCarTotalSpentFuel($carID = null)
 {
     if (is_null($carID)) {
         $carID = MyCar::getDefaultCarID();
     }
     $total = 0;
     $sqlHelper = new CoreLib\SqlHelper();
     $fuelTable = Tables\FuelTable::getTableName();
     $query = new Query('select');
     $sql = "SELECT\n\t" . "SUM(" . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('LITER') . ") AS SUMM\n" . "FROM\n\t" . $sqlHelper->wrapQuotes($fuelTable) . "\n" . "WHERE\n\t" . $sqlHelper->wrapQuotes($fuelTable) . '.' . $sqlHelper->wrapQuotes('MY_CAR_ID') . " = " . $carID;
     $query->setQueryBuildParts($sql);
     $res = $query->exec();
     if ($ar_res = $res->fetch()) {
         $total = $ar_res['SUMM'];
     }
     return $total;
 }
コード例 #4
0
ファイル: values.php プロジェクト: msergeev06/mj-msergeev
 private static function getValues($tariffID, $date = null, $type = 'hourly')
 {
     if (is_null($date)) {
         $arDate = explode('.', date('d.m.Y'));
     } else {
         if ($date = DateHelper::validateDate($date)) {
             $arDate = explode('.', $date);
         } else {
             $arDate = explode('.', date('d.m.Y'));
         }
     }
     $query = new Query('select');
     $sqlHelper = new SqlHelper();
     $valuesHourlyTableName = ValuesHourlyTable::getTableName();
     $sql = "SELECT " . $sqlHelper->getSumFunction("VALUE") . " , " . $sqlHelper->getSumFunction("COST");
     if ($type == 'hourly') {
         $sql .= " , " . $sqlHelper->wrapQuotes("HOUR");
     }
     if ($type == 'hourly' || $type == 'daily') {
         $sql .= " , " . $sqlHelper->wrapQuotes("DAY");
     }
     if ($type == 'hourly' || $type == 'daily' || $type == 'monthly') {
         $sql .= " , " . $sqlHelper->wrapQuotes("MONTH");
     }
     $sql .= " , " . $sqlHelper->wrapQuotes("YEAR");
     $sql .= " FROM " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . " WHERE " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("TARIFF_ID") . " =" . intval($tariffID);
     if ($type == 'hourly') {
         $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("DAY") . " =" . intval($arDate[0]);
     }
     if ($type == 'hourly' || $type == 'daily') {
         $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("MONTH") . " =" . intval($arDate[1]);
     }
     if ($type == 'hourly' || $type == 'daily' || $type == 'monthly') {
         $sql .= " AND " . $sqlHelper->wrapQuotes($valuesHourlyTableName) . "." . $sqlHelper->wrapQuotes("YEAR") . " =" . intval($arDate[2]);
     }
     if ($type == 'hourly') {
         $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("HOUR") . " ";
     } elseif ($type == 'daily') {
         $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("DAY") . " ";
     } elseif ($type == 'monthly') {
         $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("MONTH") . " ";
     } elseif ($type == 'yearly') {
         $sql .= " GROUP BY " . $sqlHelper->wrapQuotes("YEAR") . " ";
     }
     $query->setQueryBuildParts($sql);
     $res = $query->exec();
     if ($res->getResult()) {
         $arResult = array();
         $i = 0;
         while ($ar_res = $res->fetch()) {
             $arResult[$i] = array('SUM_VALUE' => round($ar_res['SUM_VALUE'], 2), 'SUM_COST' => round($ar_res['SUM_COST'], 2), 'YEAR' => intval($ar_res['YEAR']));
             if (isset($ar_res['HOUR'])) {
                 $arResult[$i]['HOUR'] = intval($ar_res['HOUR']);
             }
             if (isset($ar_res['DAY'])) {
                 $arResult[$i]['DAY'] = intval($ar_res['DAY']);
             }
             if (isset($ar_res['MONTH'])) {
                 $arResult[$i]['MONTH'] = intval($ar_res['MONTH']);
             }
             $i++;
         }
         return $arResult;
     } else {
         return false;
     }
 }
コード例 #5
0
ファイル: my_car.php プロジェクト: msergeev06/mj-msergeev
 /**
  * Возвращает массив данных обо всех автомобилях
  *
  * @param bool $bActive
  *
  * @return array
  */
 public static function getListCar($bActive = true)
 {
     $helper = new SqlHelper();
     $sql = "SELECT\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('ID') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('ACTIVE') . " AS " . $helper->wrapQuotes('ACTIVE') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('SORT') . " AS " . $helper->wrapQuotes('SORT') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('NAME') . ",\n\t";
     $sql .= $helper->wrapQuotes('brand') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('BRAND_ID') . ",\n\t";
     $sql .= $helper->wrapQuotes('brand') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('BRAND_NAME') . ",\n\t";
     $sql .= $helper->wrapQuotes('brand') . "." . $helper->wrapQuotes('CODE') . " AS " . $helper->wrapQuotes('BRAND_CODE') . ",\n\t";
     $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('MODEL_ID') . ",\n\t";
     $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('MODEL_NAME') . ",\n\t";
     $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('BRANDS_ID') . " AS " . $helper->wrapQuotes('MODEL_BRANDS_ID') . ",\n\t";
     $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('CODE') . " AS " . $helper->wrapQuotes('MODEL_CODE') . ",\n\t";
     $sql .= $helper->wrapQuotes('gear') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('GEARBOX_ID') . ",\n\t";
     $sql .= $helper->wrapQuotes('gear') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('GEARBOX_NAME') . ",\n\t";
     $sql .= $helper->wrapQuotes('gear') . "." . $helper->wrapQuotes('CODE') . " AS " . $helper->wrapQuotes('GEARBOX_CODE') . ",\n\t";
     $sql .= $helper->wrapQuotes('body') . "." . $helper->wrapQuotes('ID') . " AS " . $helper->wrapQuotes('BODY_ID') . ",\n\t";
     $sql .= $helper->wrapQuotes('body') . "." . $helper->wrapQuotes('NAME') . " AS " . $helper->wrapQuotes('BODY_NAME') . ",\n\t";
     $sql .= $helper->wrapQuotes('body') . "." . $helper->wrapQuotes('CODE') . " AS " . $helper->wrapQuotes('BODY_CODE') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('YEAR') . " AS " . $helper->wrapQuotes('YEAR') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('VIN') . " AS " . $helper->wrapQuotes('VIN') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_NUMBER') . " AS " . $helper->wrapQuotes('CAR_NUMBER') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('ENGINE_CAPACITY') . " AS " . $helper->wrapQuotes('ENGINE_CAPACITY') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('INTERVAL_TS') . " AS " . $helper->wrapQuotes('INTERVAL_TS') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('COST') . " AS " . $helper->wrapQuotes('COST') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('MILEAGE') . " AS " . $helper->wrapQuotes('MILEAGE') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CREDIT') . " AS " . $helper->wrapQuotes('CREDIT') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CREDIT_COST') . " AS " . $helper->wrapQuotes('CREDIT_COST') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('DATE_OSAGO_END') . " AS " . $helper->wrapQuotes('DATE_OSAGO_END') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('DATE_GTO_END') . " AS " . $helper->wrapQuotes('DATE_GTO_END') . ",\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('DEFAULT') . " AS " . $helper->wrapQuotes('DEFAULT') . "\n";
     $sql .= "FROM\n\t";
     $sql .= $helper->wrapQuotes('ms_icar_my_car') . " AS " . $helper->wrapQuotes('car') . " ,\n\t";
     $sql .= $helper->wrapQuotes('ms_icar_car_brand') . " AS " . $helper->wrapQuotes('brand') . " ,\n\t";
     $sql .= $helper->wrapQuotes('ms_icar_car_model') . " AS " . $helper->wrapQuotes('model') . " ,\n\t";
     $sql .= $helper->wrapQuotes('ms_icar_car_gearbox') . " AS " . $helper->wrapQuotes('gear') . " ,\n\t";
     $sql .= $helper->wrapQuotes('ms_icar_car_body') . " AS " . $helper->wrapQuotes('body') . "\n";
     $sql .= "WHERE\n\t";
     if ($bActive) {
         $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('ACTIVE') . " = 'Y' AND\n\t";
     }
     $sql .= $helper->wrapQuotes('brand') . "." . $helper->wrapQuotes('ID') . " = " . $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_BRANDS_ID') . " AND\n\t";
     $sql .= $helper->wrapQuotes('model') . "." . $helper->wrapQuotes('ID') . " = " . $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_MODEL_ID') . " AND\n\t";
     $sql .= $helper->wrapQuotes('gear') . "." . $helper->wrapQuotes('ID') . " = " . $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_GEARBOX_ID') . " AND\n\t";
     $sql .= $helper->wrapQuotes('body') . "." . $helper->wrapQuotes('ID') . " = " . $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('CAR_BODY_ID') . "\n";
     $sql .= "ORDER BY\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('SORT') . " ASC,\n\t";
     $sql .= $helper->wrapQuotes('car') . "." . $helper->wrapQuotes('NAME') . " ASC";
     $query = new Query('select');
     $query->setQueryBuildParts($sql);
     $res = $query->exec();
     $arResult = array();
     $i = 0;
     while ($ar_res = $res->fetch()) {
         foreach ($ar_res as $key => $value) {
             if (!is_numeric($key)) {
                 $arResult[$i][$key] = $value;
             }
         }
         $i++;
     }
     $arResult = static::fetchCarData($arResult);
     return $arResult;
 }
コード例 #6
0
ファイル: sections.php プロジェクト: msergeev06/mj-msergeev
 public static function checkTable()
 {
     /* ОСНОВНЫЕ ПРАВИЛА ХРАНЕНИЯ ДЕРЕВА КАТАЛОГОВ
      *
      * 1. Левый ключ ВСЕГДА меньше правого;
      * 2. Наименьший левый ключ ВСЕГДА равен 1;
      * 3. Наибольший правый ключ ВСЕГДА равен двойному числу узлов;
      * 4. Разница между правым и левым ключом ВСЕГДА нечетное число;
      * 5. Если уровень узла нечетное число то тогда левый ключ ВСЕГДА нечетное число, то же самое и для четных чисел;
      * 6. Ключи ВСЕГДА уникальны, вне зависимости от того правый он или левый;
      */
     $bError = false;
     //$className = static::getClassName();
     //TODO: Невозможно сравнивать с полем. Нужно доделать, чтобы можно было. См. коммент ниже
     /*
     $res1 = $className::getList(array(
     	'select' => array('ID'),
     	'filter' => array('LEFT_MARGIN'=>'RIGHT_MARGIN')
     ));
     */
     $helper = new SqlHelper();
     //1. Левый ключ ВСЕГДА меньше правого;
     //Если все правильно то результата работы запроса не будет, иначе, получаем список идентификаторов неправильных строк;
     $sql1 = "SELECT " . $helper->wrapQuotes('ID') . " FROM " . $helper->wrapQuotes(static::getTableName()) . " WHERE " . $helper->wrapQuotes('LEFT_MARGIN') . " >= " . $helper->wrapQuotes('RIGHT_MARGIN');
     $query1 = new Query('select');
     $query1->setQueryBuildParts($sql1);
     $res1 = $query1->exec();
     if ($res1->getResult()) {
         while ($ar_res1 = $res1->fetch()) {
             $arResult['RULE1'][] = $ar_res1;
         }
         $bError = true;
     }
     //2. Наименьший левый ключ ВСЕГДА равен 1;
     //3. Наибольший правый ключ ВСЕГДА равен двойному числу узлов;
     //Получаем количество записей (узлов), минимальный левый ключ и максимальный правый ключ, проверяем значения.
     $sql2 = "SELECT COUNT(" . $helper->wrapQuotes('ID') . ") as COUNT, MIN(" . $helper->wrapQuotes('LEFT_MARGIN') . ") as MIN, MAX(" . $helper->wrapQuotes('RIGHT_MARGIN') . ") as MAX FROM " . $helper->wrapQuotes(static::getTableName());
     $query2 = new Query('select');
     $query2->setQueryBuildParts($sql2);
     $res2 = $query2->exec();
     if ($ar_res2 = $res2->fetch()) {
         if ($ar_res2['MIN'] != 1) {
             $bError = true;
             $arResult['RULE2']['MIN'] = $ar_res2['MIN'];
         }
         $double = $ar_res2['COUNT'] * 2;
         if ($ar_res2['MAX'] != $double) {
             $bError = true;
             $arResult['RULE3']['COUNT'] = $ar_res2['COUNT'];
             $arResult['RULE3']['DOUBLE'] = $double;
             $arResult['RULE3']['MAX'] = $ar_res2['MAX'];
         }
     } else {
         $bError = true;
         $arResult['RULE2'] = false;
         $arResult['RULE3'] = false;
     }
     //4. Разница между правым и левым ключом ВСЕГДА нечетное число;
     //Если все правильно то результата работы запроса не будет, иначе, получаем список идентификаторов неправильных строк;
     $sql4 = "SELECT " . $helper->wrapQuotes('ID') . ", MOD((" . $helper->wrapQuotes('RIGHT_MARGIN') . " - " . $helper->wrapQuotes('LEFT_MARGIN') . ") / 2) AS REMAINDER FROM " . $helper->wrapQuotes(static::getTableName()) . " WHERE REMAINDER = 0";
     $query4 = new Query('select');
     $query4->setQueryBuildParts($sql4);
     $res4 = $query4->exec();
     if ($res4->getResult()) {
         $bError = true;
         while ($ar_res4 = $res4->fetch()) {
             $arResult['RULE4'][] = $ar_res4;
         }
     }
     //5. Если уровень узла нечетное число то тогда левый ключ ВСЕГДА нечетное число, то же самое и для четных чисел;
     //Если все правильно то результата работы запроса не будет, иначе, получаем список идентификаторов неправильных строк;
     $sql5 = "SELECT " . $helper->wrapQuotes('ID') . ", MOD((" . $helper->wrapQuotes('LEFT_MARGIN') . " – " . $helper->wrapQuotes('DEPTH_LEVEL') . " + 2) / 2) AS REMAINDER FROM " . $helper->wrapQuotes(static::getTableName()) . " WHERE REMAINDER = 1";
     $query5 = new Query('select');
     $query5->setQueryBuildParts($sql5);
     $res5 = $query5->exec();
     if ($res5->getResult()) {
         $bError = true;
         while ($ar_res5 = $res5->fetch()) {
             $arResult['RULE5'][] = $ar_res5;
         }
     }
     //6. Ключи ВСЕГДА уникальны, вне зависимости от того правый он или левый;
     /*
     			Здесь, я думаю, потребуется некоторое пояснение запроса. Выборка по сути осуществляется из одной таблицы,
     			но в разделе FROM эта таблица "виртуально" продублирована 3 раза: из первой мы выбираем все записи по
     			порядку и начинаем сравнивать с записями второй таблицы (раздел WHERE) в результате мы получаем все записи
     			неповторяющихся значений. Для того, что бы определить сколько раз запись не повторялась в таблице,
     			производим группировку (раздел GROUP BY) и получаем число "не повторов" (COUNT(t1.id)). По условию,
     			если все ключи уникальны, то число не повторов будет меньше на одну единицу чем общее количество записей.
     			Для того, чтобы определить количество записей в таблице, берем максимальный правый ключ (MAX(t3.right_key)),
     			так как его значение - двойное число записей, но так как в условии отбора для записи с максимальным правым
     			ключом - максимальный правый ключ будет другим, вводится третья таблица, при этом число "неповторов"
     			увеличивается умножением его на количество записей. SQRT(4*rep +1) - решение уравнения x^2 + x = rep.
     			Если все правильно то результата работы запроса не будет, иначе, получаем список идентификаторов
     			неправильных строк;
     */
     $sql6 = "SELECT t1." . $helper->wrapQuotes('ID') . ", COUNT(t1." . $helper->wrapQuotes('ID') . ") AS rep, MAX(t3." . $helper->wrapQuotes('RIGHT_MARGIN') . ") AS max_right FROM " . $helper->wrapQuotes(static::getTableName()) . " AS t1, " . $helper->wrapQuotes(static::getTableName()) . " AS t2, " . $helper->wrapQuotes(static::getTableName()) . " AS t3 WHERE t1." . $helper->wrapQuotes('LEFT_MARGIN') . " <> t2." . $helper->wrapQuotes('LEFT_MARGIN') . " AND t1." . $helper->wrapQuotes('LEFT_MARGIN') . " <> t2." . $helper->wrapQuotes('RIGHT_MARGIN') . " AND t1." . $helper->wrapQuotes('RIGHT_MARGIN') . " <> t2." . $helper->wrapQuotes('LEFT_MARGIN') . " AND t1." . $helper->wrapQuotes('RIGHT_MARGIN') . " <> t2." . $helper->wrapQuotes('RIGHT_MARGIN') . " GROUP BY t1." . $helper->wrapQuotes('ID') . " HAVING max_right <> SQRT(4 * rep + 1) + 1";
     $query6 = new Query('select');
     $query6->setQueryBuildParts($sql6);
     $res6 = $query6->exec();
     if ($res6->getResult()) {
         $bError = true;
         while ($ar_res6 = $res6->fetch()) {
             $arResult['RULE6'][] = $ar_res6;
         }
     }
     if ($bError) {
         return $arResult;
     } else {
         return false;
     }
 }
コード例 #7
0
 public static function checkTableLinks()
 {
     $bLinks = false;
     $helper = new SqlHelper();
     $arLinks = static::getTableLinks();
     $tableName = static::getTableName();
     foreach ($arLinks as $field => $arLink) {
         $sql = "SELECT\n\t" . 't.' . $helper->wrapQuotes($field) . "\n";
         $sql .= "FROM\n\t" . $helper->wrapQuotes($tableName) . " t";
         $where = "WHERE\n\t";
         $t = 0;
         $bFirst = true;
         foreach ($arLink as $tableName => $fieldName) {
             $t++;
             if ($bFirst) {
                 $bFirst = false;
             } else {
                 $where .= " AND\n\t";
             }
             $sql .= ",\n\t";
             $sql .= $helper->wrapQuotes($tableName) . " t" . $t;
             $where .= "t" . $t . "." . $helper->wrapQuotes($fieldName) . " = t." . $helper->wrapQuotes($field);
         }
         $sql .= "\n" . $where;
         $query = new Entity\Query("select");
         $query->setQueryBuildParts($sql);
         $res = $query->exec();
         if ($ar_res = $res->fetch()) {
             $bLinks = true;
         }
     }
     return $bLinks;
 }
コード例 #8
0
ファイル: query.php プロジェクト: msergeev06/mj-msergeev
 private function sqlMassDelete($query = null)
 {
     try {
         if (is_null($query)) {
             throw new Exception\ArgumentNullException('query');
         }
     } catch (Exception\ArgumentNullException $e) {
         $e->showException();
         return false;
     }
     $helper = new Lib\SqlHelper();
     $arMap = $query->getTableMap();
     $primaryId = $query->getDeletePrimary();
     $arTableLinks = $query->getTableLinks();
     $tableName = $query->getTableName();
     foreach ($arTableLinks as $field => $arLinked) {
         foreach ($arLinked as $linkTable => $linkField) {
             if (is_array($linkField)) {
                 foreach ($linkField as $linkF) {
                     $arRes = Lib\Tools::runTableClassFunction($linkTable, 'getListFunc', array(array('select' => array('ID'), 'filter' => array($linkF => $primaryId))));
                     if ($arRes) {
                         foreach ($arRes as $delID) {
                             $deleteQuery = new Query('delete');
                             $deleteQuery->setDeleteParams($delID, true, null, Lib\Tools::runTableClassFunction($linkTable, 'getTableMap'), Lib\Tools::runTableClassFunction($linkTable, 'getTableLinks'));
                             $deleteQuery->exec();
                         }
                     }
                 }
             } else {
                 $arRes = Lib\Tools::runTableClassFunction($linkTable, 'getListFunc', array(array('select' => array('ID'), 'filter' => array($linkField => $primaryId))));
                 if ($arRes) {
                     foreach ($arRes as $delID) {
                         $deleteQuery = new Query('delete');
                         $deleteQuery->setDeleteParams($delID, true, Lib\Tools::runTableClassFunction($linkTable, 'getTableName'), Lib\Tools::runTableClassFunction($linkTable, 'getTableMap'), Lib\Tools::runTableClassFunction($linkTable, 'getTableLinks'));
                         $deleteQuery->exec();
                     }
                 }
             }
         }
     }
     foreach ($arMap as $field => $objData) {
         if ($objData->isPrimary()) {
             $primaryField = $objData->getColumnName();
             $primaryObj = $objData;
             break;
         }
     }
     $sql = "DELETE FROM " . $helper->wrapQuotes($tableName);
     $sql .= " WHERE " . $helper->wrapQuotes($tableName) . ".";
     $sql .= $helper->wrapQuotes($primaryField) . " = ";
     if ($primaryObj instanceof IntegerField || $primaryObj instanceof FloatField) {
         $sql .= $primaryId;
     } else {
         $sql .= "'" . $primaryId . "'";
     }
     $sql .= " LIMIT 1";
     $delQuery = new Query('delete');
     $delQuery->setQueryBuildParts($sql);
     $res = $delQuery->exec();
 }
コード例 #9
0
 function __construct()
 {
     parent::__construct();
 }
コード例 #10
0
ファイル: points.php プロジェクト: msergeev06/mj-msergeev
 public static function increasePointPopular($pointID = null)
 {
     try {
         if (is_null($pointID)) {
             throw new Exception\ArgumentNullException('pointID');
         }
     } catch (Exception\ArgumentNullException $e) {
         $e->showException();
         return false;
     }
     if (static::checkNeedIncreasePointPopular($pointID)) {
         $helper = new SqlHelper();
         $query = new Query('update');
         $sql = "UPDATE " . $helper->wrapQuotes(Tables\PointsTable::getTableName()) . " SET " . $helper->wrapQuotes('POPULAR') . " = " . $helper->wrapQuotes('POPULAR') . " + 1 WHERE ID = " . $pointID;
         $query->setQueryBuildParts($sql);
         $res = $query->exec();
         if ($res->getResult()) {
             return true;
         } else {
             return false;
         }
     }
 }