2012-01-02 3 views
0

с помощью следующего запроса:Counting результат запроса по этому набору данных

$result = mysql_query(
"SELECT Stats.champion 
FROM Stats, Games 
WHERE Stats.game_id = Games.game_id 
AND Stats.win = 1 
AND Games.game_mode = 'ODIN'"); 

Я вернулся следующий набор данных:

Ezreal 
Garen 
Pantheon 
Ahri 
Sion 
Rammus 
Nidalee 
Poppy 
Heimerdinger 
Graves 
KogMaw 
Gangplank 
Tristana 
Fizz 
Pantheon 
Pantheon 
Evelynn 
MasterYi 
Tryndamere 
Leona 
Vayne 
Malphite 
Graves 
Shaco 
Nidalee 
Graves 
Heimerdinger 
Gangplank 
JarvanIV 
Akali 

Моя цель состоит в том, чтобы подсчитать результат для каждого имени. Я знаю, например, «Пантеон», я могу сделать:

$result = mysql_query(
"SELECT Stats.champion 
FROM Stats, Games 
WHERE Stats.game_id = Games.game_id 
AND Stats.champion = 'Pantheon' 
AND Stats.win = 1 
AND Games.game_mode = 'ODIN'"); 

$pantheonwins = mysql_num_rows($result); 
echo $pantheonwins; 

Это приводит к правильной информации!

Pantheon 
Pantheon 
Pantheon 
3 

Так, так как это дает мне правильные данные, это самый эффективный способ, чтобы получить количество выигрыша для каждого имени, а затем получить общее количество записей в компьютерных процентов?

+0

Пожалуйста, вернитесь к своим предыдущим вопросам и выберите подходящий ответ; делая это, другие будут более склонны вам помочь. –

+0

@ Dennis Я только прокомментировал ответ, сказав, что это сработало для меня 11 минут назад, как я мог, по вашему мнению, 50 минут назад выбрать правильный ответ? LOL эти вещи требуют времени для реализации! На более светлой ноте, как я уже упоминал, был выбран ответ. Я благодарен за полученную помощь. – pr0tocol

+0

Я имел в виду ваши предыдущие 20 вопросов, но теперь я вижу, что они даже не получили ответа :) –

ответ

3

Попробуйте изменить запрос к этому:

SELECT 
    Stats.champion, 
    count(Stats.champion) as myCount 
FROM 
    Stats, Games 
WHERE 
    Stats.game_id = Games.game_id 
    AND Stats.win = 1 
    AND Games.game_mode = 'ODIN' 
GROUP BY 
    Stats.champion 

Теперь, вы должны получить счетчик вместе с champion в результате запроса.

+0

Получил это рабочий чувак! Большое спасибо. Если вы видите мой вопрос о вычислении процентов, мне здесь не нужно. Сожалею! Огромное спасибо. – pr0tocol

2
SELECT Stats.champion, COUNT(*) as aCount 
FROM Stats, Games 
WHERE Stats.game_id = Games.game_id 
AND Stats.win = 1 
AND Games.game_mode = 'ODIN' 
GROUP BY Stats.champion 
2

как об этом:

SELECT Stats.champion 
FROM Stats, Games 
    WHERE Stats.game_id = Games.game_id 
    AND Stats.champion = 'Pantheon' 
    AND Stats.win = 1 
    AND Games.game_mode = 'ODIN' 
UNION 
SELECT COUNT(Stats.champion) as champion 
FROM Stats, Games 
    WHERE Stats.game_id = Games.game_id 
    AND Stats.champion = 'Pantheon' 
    AND Stats.win = 1 
    AND Games.game_mode = 'ODIN' 

вернется

Champion 
============= 
Pantheon 
Pantheon 
Pantheon 
3 

, но если вы хотите иметь результаты, как это:

Champion  |  Result 
============================== 
Pantheon  |   3 

, то вы должны использоваться следующим образом:

SELECT STATS.champion as Champion, COUNT(GAMES.game_id) as `Result` 
FROM Stats INNER JOIN Games ON Stats.game_id = Games.game_id 
WHERE Stats.win = 1 AND Games.game_mode = 'ODIN' 
GROUP BY Champion 
Смежные вопросы