Example #1
0
 private function splitBy($sp_table, $table, $column, $constraints)
 {
     $num_label_sql = isset($column) ? mysql_real_escape_string($column) : $table;
     $sp_table_sql = mysql_real_escape_string($sp_table) . '_table';
     $label_sql = mysql_real_escape_string($sp_table) . '_name';
     $real_table_sql = mysql_real_escape_string($table) . '_table';
     $query = '
             SELECT `' . $sp_table_sql . '`.`name` AS `' . $label_sql . '`, COUNT(*) AS `' . $num_label_sql . '`
             FROM `' . $real_table_sql . '`, `' . $sp_table_sql . '`
             WHERE `' . $real_table_sql . '`.`' . mysql_real_escape_string($sp_table) . '` = `' . $sp_table_sql . '`.`id`
             ';
     $query = isset($column) ? ApiBase::notEmpty($query . 'AND ', $column) : $query;
     $query = isset($constraints) ? ApiBase::addConstraints($query . 'AND ', $constraints) : $query;
     $query .= 'GROUP BY `' . $label_sql . '`
             ORDER BY `' . $label_sql . '` ASC
             ';
     try {
         $response = ApiBase::doQuery($query);
     } catch (Exception $e) {
         throw $e;
     }
     foreach ($response as $r) {
         $mod_resp[] = array($sp_table => $r);
     }
     return $mod_resp;
 }