Проблема заключается в следующем: собирая информацию о баллах студентов из разных таблиц, я собираю их в одно целое:
$sql="SELECT `u`.`login` as `login`, `u`.`dostup` as `dostup`, `u`.`fac` as `fac`,
(SELECT SUM(`h`.`mark`) FROM `homework` as `h` WHERE `h`.`student`=`u`.`login` and `status` != '0' and `status` != '2') as `sumh`,
(SELECT COUNT(`h`.`id`) FROM `homework` as `h` WHERE `h`.`student`=`u`.`login` and `status` != '0' and `status` != '2') as `counth`,
(SELECT SUM(`r`.`mark`) FROM `reports` as `r` WHERE `r`.`student`=`u`.`login` and `status` != '0' and `status` != '2') as `sumr`,
(SELECT COUNT(`r`.`id`) FROM `reports` as `r` WHERE `r`.`student`=`u`.`login` and `status` != '0' and `status` != '2') as `countr`,
(SELECT SUM(`a`.`ball`) FROM `adminball` as `a` WHERE `a`.`student`=`u`.`login`) as `suma`,
(SELECT SUM(`ocena`) FROM `exam` WHERE `stud`=`u`.`login`) as `exam`,
(SELECT SUM(`ball`) FROM `penalty` WHERE `student`=`u`.`login`) as `penalty`
FROM `users` as `u` WHERE `u`.`fac` != '-' and `u`.`dostup` > 0 and `u`.`dostup` < 6 GROUP BY `u`.`id` HAVING `counth`>0 or `countr`>0";
И в итоге, когда я далее вывожу уже список, у меня получаются цифры не по порядку, а вразброс. Не могу добиться сортировки массива (числа по убыванию).
$res = mysql_query($sql);
$i = 1;
$result = array();
while($row = mysql_fetch_array($res)) {
$sum=$row['sumh']+$row['sumr']+$row['suma']+$row['exam']-$row['penalty'];
$count=$row['counth']+$row['countr'];
if ($result[0]['sum'] < $sum) {
array_unshift($result, array('sum'=>$sum, 'count'=>$count, 'fac'=>$row['fac'], 'login'=>$row['login'], 'sumh/counth'=>$row['sumh']/$row['counth'], 'dostup'=>$row['dostup']));
}else{
$result[] = array('sum'=>$sum, 'count'=>$count, 'fac'=>$row['fac'], 'login'=>$row['login'], 'sumh/counth'=>$row['sumh']/$row['counth'], 'dostup'=>$row['dostup']);
}
$i++;
}
foreach($result as $i => $row) {
echo "<tr><td> <font color='#C88900'><center>".($i+1)."</font> </center></td><td> <a title='". $point[$row['fac']] ."'><font color='". $colorsfac[$row['fac']] ."'> <center>".$row['login']."</center> </font></a></td><td><center><font color='#C88900'>";
if($row['dostup'] and $row['fac'] == "Прешт") {
echo "-";
} else {
echo "$row[dostup]-й курс</font> </center></td>";
}
echo "<td><center><font color='#9B6B03'> ".$row['sum']."</font> </center></td><td><center><font color='#C88900'> ".round($row['sumh/counth'], 1)." </font></center></td><td><center><font color='#C88900'> ".$row['count']."</font> </center></td></tr>";
}
В итоге цифры выводятся вот так:
Помогите! ORDER BY НЕ ПОМОГАЕТ И НЕ СОРТИРУЕТ БАЛЛЫ.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть страницы на которых находятся div'ы с views-row-1 от 1 до 11Пример:
Здравствуйте, нужно скрыть префикс *php в url сайта (используя htaccess)
Если сервер работает на асинхронных сокетах, может ли клиент работать на синхронных, или, наоборот, сервер на - синхронных, а клиент - на асинхронных?
Имеем - шаблонная функция, еще и рекурсивная, в которой много чего подтянуто из разных (заголовочных) файлов, а шаблонность только одна - запись...