Например подсчитать количество строки в базе cms_sport в таблице "teams_id" у которого все числа 5 равны в базе cms_sport_tournament "id_teams" 5
Вообще ничего не понял.
Во всех таблицах столбец id должен иметь уникальный индекс. Количество строк с известным id в любом случае равно одному.Друзья подскажите пожалуйста как подсчитать количество полей с известным id ?
В смысле подсчитать количество строк в одной таблице у которых какое-то значение совпадает со значением в другой таблице?Например подсчитать количество строки в базе cms_sport в таблице "teams_id" у которого все числа 5 равны в базе cms_sport_tournament "id_teams" 5
Нико,
Вообще ничего не понял.
Во всех таблицах столбец id должен иметь уникальный индекс. Количество строк с известным id в любом случае равно одному.Друзья подскажите пожалуйста как подсчитать количество полей с известным id ?
В смысле подсчитать количество строк в одной таблице у которых какое-то значение совпадает со значением в другой таблице?Например подсчитать количество строки в базе cms_sport в таблице "teams_id" у которого все числа 5 равны в базе cms_sport_tournament "id_teams" 5
Да именно так, в таблице сms_sport в "system_name" есть системное имя "basketball".
в табилце cms_sport_info в "name_system" есть много системный имен "basketball". Вот и надо подсчитать сколько их там.
Но кроме "basketball" там есть и еще разные системные имена поэтому надо как то в мпссиве считать.
если $sport равняется $sport тогда считываем сколько там полей в cms_sport_info
Грубо говоря мне нужно узнать сколько игроков в команду basketball, список игроков в cms_sport_info
SELECT COUNT(name_system) FROM cms_sport_info WHERE name_system = "basketball"
$count = $this->model->getCount('sport_info', 'name_system')->filterEqual('name_system', 'basketball');
Ну, в mysql это выглядит довольно просто:
В переводе на инстантовский:
SELECT COUNT(name_system) FROM cms_sport_info WHERE name_system = "basketball"
$count = $this->model->getCount('sport_info', 'name_system')->filterEqual('name_system', 'basketball');
То что вы показали кажется мы всю операцию делаем в одной таблице. Вот фотка.
Так я и не понял, зачем нужна первая таблица, если Вы уже знаете sport_system для выборки из второй таблицы.То что вы показали кажется мы всю операцию делаем в одной таблице. Вот фотка
Другой вариант, если Вам сначала нужно получить это имя вида спорта из первой таблицы по id.
Тогда в mysql запрос будет выглядеть так:
SELECT COUNT(sport_system) FROM cms_sport_team_info WHERE sport_system = (SELECT system_name FROM cms_sport WHERE id = {нужный ид})
SELECT COUNT(i.sport_system) FROM cms_sport_team_info i WHERE s.id = {нужный ид} LEFT JOIN cms_sport s ON s.system_name = i.sport_system
public function getCountSport($id) { $count = $this->model->getCount('sport_team_info', 'sport_system')->joinLeft('sport', 's', 's.system_name = i.sport_system')->filterEqual('s.id', $id); return $count; }
Так я и не понял, зачем нужна первая таблица, если Вы уже знаете sport_system для выборки из второй таблицы.То что вы показали кажется мы всю операцию делаем в одной таблице. Вот фотка
Другой вариант, если Вам сначала нужно получить это имя вида спорта из первой таблицы по id.
Тогда в mysql запрос будет выглядеть так:
либо так:
SELECT COUNT(sport_system) FROM cms_sport_team_info WHERE sport_system = (SELECT system_name FROM cms_sport WHERE id = {нужный ид})
Функция соответственно будет такая:
SELECT COUNT(i.sport_system) FROM cms_sport_team_info i WHERE s.id = {нужный ид} LEFT JOIN cms_sport s ON s.system_name = i.sport_system
Отправляете в эту функцию id вида спорта — получаете количество турниров по этому виду спорта.
public function getCountSport($id) { $count = $this->model->getCount('sport_team_info', 'sport_system')->joinLeft('sport', 's', 's.system_name = i.sport_system')->filterEqual('s.id', $id); return $count; }
Неа не то щас я вам покажу что мне именно нужно наверное будет какой то вариант просто я не знаю как это сделать.
Я сделал это так но по id но это не правильно, на каждый станице показывало то что на данный момент, а не точто там
То есть вот так сделал
public function getUsersInSportsCount($id, $basketball){ $this->filterEqual('tournament_id', $id); $this->filterEqual('sport_system', $basketball); return $this->getCount('sport_team_info'); }
public function getUsersInSportsCount($id, $basketball){ $this->filterEqual('tournament_id', $id); $this->filterEqual('sport_system', $basketball); (вот это нужно брать из базы наверно как то что бы заранее уже считало а не через массив и экшен); return $this->getCount('sport_team_info'); }
Опишите нормально техническое задание — будет нормальное решение.
$this->joinLeft('sport', 'm', 'm.id = i.sport'); $this->filterEqual('m.id', '1');
Вы немножко неправильно подходите к вопросу.
Тут нужно не картинки выкладывать (на которых я ничего не вижу), а корректно сформулировать условия задачи.
Какие у нас входные данные?
Номер команды и вид спорта, по которому нужна статистика? В каких таблицах содержатся эти данные?
Что нам нужно получить? Счетчик турниров определенной команды в определенном виде спорта?
В какой таблице эти турниры?
Тогда можно будет составить запрос в базу, задать в WHERE входные данные и получить на выходе счетчик строк, которые подходят по поставленным условиям.
Нико,
Вы немножко неправильно подходите к вопросу.
Тут нужно не картинки выкладывать (на которых я ничего не вижу), а корректно сформулировать условия задачи.
Какие у нас входные данные?
Номер команды и вид спорта, по которому нужна статистика? В каких таблицах содержатся эти данные?
Что нам нужно получить? Счетчик турниров определенной команды в определенном виде спорта?
В какой таблице эти турниры?
Тогда можно будет составить запрос в базу, задать в WHERE входные данные и получить на выходе счетчик строк, которые подходят по поставленным условиям.
Да может быть.
Мне нужно считать количество турниров в {cms}_sport_tournaments ячейке sport_id, в котором {cms}_sport равен таблице id.
В {cms}_sport -э хранятся виды спорта баскетбол, волейбол футбол и т.д они добавляются через админ панель.
В {cms}_sport_tournaments — э хранятся турниры и в ячейке sport_id добавляются id видов спорта что бы выводить турнир который относится к виду спорта.
Вот и теперь нужно вывести сколько турниров для каждого вида спорта.
Выводится вот такая ошибка, когда жму изменить город "an error ocurred". В чем может быть проблема с БД?
И такое же при регистрации новых пользователей выдает, когда тот выбирает город.
Текст ошибки целиком, если можно.
"an error ocurred" означает просто "случилась ошибка".
В том то и дело, что только это и выдает в ajax окне.
@Sh4maH,
Текст ошибки целиком, если можно.
"an error ocurred" означает просто "случилась ошибка".
В том то и дело, что только это и выдает в ajax окне.
@Sh4maH,
Текст ошибки целиком, если можно.
"an error ocurred" означает просто "случилась ошибка".
Ошибок может быть куча, и в шаблоне и в системе. Ну если вы трогали их, а так система работает стабильно.