Не надо делать ключ массива. Когда делаешь var_dump($arr); у тебя должно показываться нечто такого вида Код (Text): array( 'имя команды' => array('год турнира' => какие-то цифры), ... 'имя команды' => array('год турнира' => какие-то цифры)) Только вместо имя команды будет конкретная команда. и выводить такой массив можно циклом PHP: <?php foreach($массив $ключ => $значение) { echo $ключ; // тут будет выведено имя команды echo $значение['2009sum']; // и т.д. }
PHP: <?php $result2 = mysql_query("SELECT komanda, (SELECT SUM(ochki) FROM kubki WHERE raiting.kubok=kubki.title AND godtyrnira='2009') as 2009sum, (SELECT SUM(ochki) FROM kubki WHERE raiting.kubok=kubki.title AND godtyrnira='2010') as 2010sum, SUM(ochki) as allsum FROM raiting,kubki GROUP by komanda,godtyrnira ORDER by allsum DESC",$db); if (!$result2) { echo "<p><strong>Код ошибки:</strong></p>"; exit(mysql_error()); } if (mysql_num_rows($result2) > 0) { $arr = array(); while ($myrow = mysql_fetch_assoc($result2)) { $arr[$myrow["komanda"]][$myrow["godtyrnira"]] = $myrow["allsum"]; } foreach($arr as $komanda => $data2) { echo $komanda."<br>"; echo $data2['allsum']; } } ?> Выводит только список команд, почему очки не выводит, я что-то разобраться не могу (
Вот твой же код из этого топика. Но с добавленным mysql_fetch_assoc (который ты забыл) PHP: <?php $result = mysql_query("SELECT raiting.komanda, raiting.god, sum(ochki) as sum_ochki, kubki.godtyrnira FROM raiting AS r JOIN kubki AS k ON raiting.kubok = kubki.title group by raiting.komanda,kubki.godtyrnira",$db); $mydata = array(); while($row = mysql_fetch_assoc($result)) { $mydata[$row["komanda"]][$row["godtyrnira"]] = $row["sum_ochki"]; } $n=0; foreach($mydata as $komanda=>$data) { ?> <tr> <td><?php echo $n++;?></td> <td><?php echo $komanda;?></td> <td><?php echo $data["2009"];?></td> <td><?php echo $data["2010"];?></td> <td><?php echo $data["2011"];?></td> <td><?php echo $data["2009"]+$data["2010"]+$data["2011"];?></td> </tr> <?php }?>
После небольшой правки кода получил: PHP: <?php $result = mysql_query("SELECT komanda,god, sum(ochki) as sum_ochki, godtyrnira FROM raiting AS r JOIN kubki AS k ON kubok = title group by komanda,godtyrnira ORDER by sum_ochki DESC",$db); if (!$result) { echo "<p><strong>Код ошибки:</strong></p>"; exit(mysql_error()); } $mydata = array(); while($row = mysql_fetch_assoc($result)) { $mydata[$row["komanda"]][$row["godtyrnira"]] = $row["sum_ochki"]; } $n=1; foreach($mydata as $komanda=>$data) { $data["2009"] = round($data["2009"],'2'); ?> <tr> <td width='50' align="center"><?php echo $n++;?></td> <td width='70' align="center"><?php echo $komanda;?></td> <td width='50' align="center"><?php echo $data["2009"];?></td> <td width='50' align="center"><?php echo $data["2010"];?></td> <td width='50' align="center"><?php echo $data["2011"];?></td> <td width='50' align="center"><?php echo $data["2009"]+$data["2010"]+$data["2011"];?></td> </tr> <?php }?> И ОНО РАБОТАЕТ! УРА! ) Спасибо большое Вам, Simpliest, за Вашу помощь в этом нелегком деле! Я очень признателен вам! Вы настоящий специалист! Еще раз спасибо! Все супер!
AloKvadro Блин, парень прибодал глупостями. Решил вопрос, сказал один раз спасибо, и спокойно ушел. Лучшая благодарность - это твое умение самостоятельно преодолевать трудности.
PHP: <?php $result = mysql_query("SELECT komanda,god, sum(ochki) as sum_ochki, godtyrnira FROM raiting AS r JOIN kubki AS k ON kubok = title group by komanda,godtyrnira ORDER by sum_ochki DESC",$db); if (!$result) { echo "<p><strong>Код ошибки:</strong></p>"; exit(mysql_error()); } $mydata = array(); while($row = mysql_fetch_assoc($result)) { $mydata[$row["komanda"]][$row["godtyrnira"]] = $row["sum_ochki"]; } $n=1; foreach($mydata as $komanda=>$data) { $data["2009"] = round($data["2009"],'2'); ?> <tr> <td width='50' align="center"><?php echo $n++;?></td> <td width='70' align="center"><?php echo $komanda;?></td> <td width='50' align="center"><?php echo $data["2009"];?></td> <td width='50' align="center"><?php echo $data["2010"];?></td> <td width='50' align="center"><?php echo $data["2011"];?></td> <td width='50' align="center"><?php echo $data["2009"]+$data["2010"]+$data["2011"];?></td> </tr> <?php }?> Сейчас оно сортирует таблицу по 2009 году. Если вводить данные на 2010 год, то сортировка не работает по сумме всех очков, скажите пожалуйста, как сделать, чтобы эта таблица сортировала все команды по сумме 3 годов?
Для этого нужно сделать 2 вещи. 1. перенестить подсчет общей суммы за все года в цикл, где происходит выборка из базы. 2. затем посортировать при помощи функции usort() Ну, а потом уже можно выводить.