Как подсчитать количество полей с известным "id" 2.X

 
Посетитель
small user social cms
Медаль
Сообщений: 624
Друзья подскажите пожалуйста как подсчитать количество полей с известным id ?

Например подсчитать количество строки в базе cms_sport в таблице "teams_id" у которого все числа 5 равны в базе cms_sport_tournament "id_teams" 5
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
Нико,
Вообще ничего не понял.
Нико:
Друзья подскажите пожалуйста как подсчитать количество полей с известным id ?
Во всех таблицах столбец id должен иметь уникальный индекс. Количество строк с известным id в любом случае равно одному.

Нико:
Например подсчитать количество строки в базе cms_sport в таблице "teams_id" у которого все числа 5 равны в базе cms_sport_tournament "id_teams" 5
В смысле подсчитать количество строк в одной таблице у которых какое-то значение совпадает со значением в другой таблице?
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 624
Ris:

Нико,
Вообще ничего не понял.
Нико:
Друзья подскажите пожалуйста как подсчитать количество полей с известным 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
Редактировалось: 1 раз (Последний: 26 сентября 2017 в 11:00)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
Ну, в mysql это выглядит довольно просто:
Код SQL:
  1. SELECT COUNT(name_system) FROM cms_sport_info WHERE name_system = "basketball"
В переводе на инстантовский:
Код PHP:
  1. $count = $this->model->getCount('sport_info', 'name_system')->filterEqual('name_system', 'basketball');
Редактировалось: 1 раз (Последний: 26 сентября 2017 в 11:08)
Посетитель
small user social cms
Медаль
Сообщений: 624
Ris:

Ну, в mysql это выглядит довольно просто:
Код SQL:
  1. SELECT COUNT(name_system) FROM cms_sport_info WHERE name_system = "basketball"
В переводе на инстантовский:
Код PHP:
  1. $count = $this->model->getCount('sport_info', 'name_system')->filterEqual('name_system', 'basketball');

Как подсчитать количество полей с известным \"id\"

То что вы показали кажется мы всю операцию делаем в одной таблице. Вот фотка.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
Нико:
То что вы показали кажется мы всю операцию делаем в одной таблице. Вот фотка
Так я и не понял, зачем нужна первая таблица, если Вы уже знаете sport_system для выборки из второй таблицы.

Другой вариант, если Вам сначала нужно получить это имя вида спорта из первой таблицы по id.

Тогда в mysql запрос будет выглядеть так:
Код SQL:
  1. SELECT COUNT(sport_system) FROM cms_sport_team_info WHERE sport_system = (SELECT system_name FROM cms_sport WHERE id = {нужный ид})
либо так:
Код SQL:
  1. SELECT COUNT(i.sport_system) FROM cms_sport_team_info i WHERE s.id = {нужный ид}
  2. LEFT JOIN cms_sport s ON s.system_name = i.sport_system
Функция соответственно будет такая:

Код PHP:
  1. public function getCountSport($id) {
  2. $count = $this->model->getCount('sport_team_info', 'sport_system')->joinLeft('sport', 's', 's.system_name = i.sport_system')->filterEqual('s.id', $id);
  3. return $count;
  4. }
Отправляете в эту функцию id вида спорта - получаете количество турниров по этому виду спорта.
Редактировалось: 1 раз (Последний: 26 сентября 2017 в 11:44)
Посетитель
small user social cms
Медаль
Сообщений: 624
Ris:

Нико:
То что вы показали кажется мы всю операцию делаем в одной таблице. Вот фотка
Так я и не понял, зачем нужна первая таблица, если Вы уже знаете sport_system для выборки из второй таблицы.

Другой вариант, если Вам сначала нужно получить это имя вида спорта из первой таблицы по id.

Тогда в mysql запрос будет выглядеть так:
Код SQL:
  1. SELECT COUNT(sport_system) FROM cms_sport_team_info WHERE sport_system = (SELECT system_name FROM cms_sport WHERE id = {нужный ид})
либо так:
Код SQL:
  1. SELECT COUNT(i.sport_system) FROM cms_sport_team_info i WHERE s.id = {нужный ид}
  2. LEFT JOIN cms_sport s ON s.system_name = i.sport_system
Функция соответственно будет такая:

Код PHP:
  1. public function getCountSport($id) {
  2. $count = $this->model->getCount('sport_team_info', 'sport_system')->joinLeft('sport', 's', 's.system_name = i.sport_system')->filterEqual('s.id', $id);
  3. return $count;
  4. }
Отправляете в эту функцию id вида спорта - получаете количество турниров по этому виду спорта.

Неа не то щас я вам покажу что мне именно нужно наверное будет какой то вариант просто я не знаю как это сделать.


Как подсчитать количество полей с известным \"id\"

Я сделал это так но по id но это не правильно, на каждый станице показывало то что на данный момент, а не точто там

То есть вот так сделал

Код PHP:
  1. public function getUsersInSportsCount($id, $basketball){
  2. $this->filterEqual('tournament_id', $id);
  3. $this->filterEqual('sport_system', $basketball);
  4. return $this->getCount('sport_team_info');
  5. }
и получилось вот так сами поняли почему.

Как подсчитать количество полей с известным \"id\"


Код PHP:
  1. public function getUsersInSportsCount($id, $basketball){
  2. $this->filterEqual('tournament_id', $id);
  3. $this->filterEqual('sport_system', $basketball); (вот это нужно брать из базы наверно как то что бы заранее уже считало а не через массив и экшен);
  4. return $this->getCount('sport_team_info');
  5. }
Редактировалось: 1 раз (Последний: 26 сентября 2017 в 12:01)
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
Нико,
Опишите нормально техническое задание - будет нормальное решение.
Посетитель
small user social cms
Медаль
Сообщений: 624
Вот фотка я там подчеркнул все к чему относится, прописывать так могу
Код PHP:
  1. $this->joinLeft('sport', 'm', 'm.id = i.sport');
  2. $this->filterEqual('m.id', '1');
Но дело в том что вид спорта добавляется через админ панель и каждый раз добавляя новый вид спорта думаю не правильно опять дописывать фильтр в коде.
Как подсчитать количество полей с известным \"id\"
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
Нико,
Вы немножко неправильно подходите к вопросу.
Тут нужно не картинки выкладывать (на которых я ничего не вижу), а корректно сформулировать условия задачи.
Какие у нас входные данные?
Номер команды и вид спорта, по которому нужна статистика? В каких таблицах содержатся эти данные?
Что нам нужно получить? Счетчик турниров определенной команды в определенном виде спорта?
В какой таблице эти турниры?
Тогда можно будет составить запрос в базу, задать в WHERE входные данные и получить на выходе счетчик строк, которые подходят по поставленным условиям.
Посетитель
small user social cms
Медаль
Сообщений: 624
Ris:

Нико,
Вы немножко неправильно подходите к вопросу.
Тут нужно не картинки выкладывать (на которых я ничего не вижу), а корректно сформулировать условия задачи.
Какие у нас входные данные?
Номер команды и вид спорта, по которому нужна статистика? В каких таблицах содержатся эти данные?
Что нам нужно получить? Счетчик турниров определенной команды в определенном виде спорта?
В какой таблице эти турниры?
Тогда можно будет составить запрос в базу, задать в WHERE входные данные и получить на выходе счетчик строк, которые подходят по поставленным условиям.

Да может быть.
Мне нужно считать количество турниров в {cms}_sport_tournaments ячейке sport_id, в котором {cms}_sport равен таблице id.

В {cms}_sport -э хранятся виды спорта баскетбол, волейбол футбол и т.д они добавляются через админ панель.

В {cms}_sport_tournaments - э хранятся турниры и в ячейке sport_id добавляются id видов спорта что бы выводить турнир который относится к виду спорта.

Вот и теперь нужно вывести сколько турниров для каждого вида спорта.
Посетитель
no avatar
Сообщений: 27
Всем привет извините что пишу не туда, но нужна помощь по решению проблемы с выбором городов при регистрации пользователей и при редактировании своего профиля.
Выводится вот такая ошибка, когда жму изменить город "an error ocurred". В чем может быть проблема с БД?
И такое же при регистрации новых пользователей выдает, когда тот выбирает город.
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2711
@Sh4maH,
Текст ошибки целиком, если можно.
"an error ocurred" означает просто "случилась ошибка".
Посетитель
no avatar
Сообщений: 27
Ris:

@Sh4maH,
Текст ошибки целиком, если можно.
"an error ocurred" означает просто "случилась ошибка".
В том то и дело, что только это и выдает в ajax окне.
Посетитель
small user social cms
Медаль
Сообщений: 624
@Sh4maH:

Ris:

@Sh4maH,
Текст ошибки целиком, если можно.
"an error ocurred" означает просто "случилась ошибка".
В том то и дело, что только это и выдает в ajax окне.

Ошибок может быть куча, и в шаблоне и в системе. Ну если вы трогали их, а так система работает стабильно.
Редактировалось: 1 раз (Последний: 3 октября 2017 в 00:05)
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.