В PHP / CodeIgniter как вы вычисляете класс и формируете ранг на основе оценок для студента?
-
20-09-2019 - |
Вопрос
У меня есть таблица базы данных, которая содержит следующую информацию об оценке учащегося:
student_id subject_id gpa letter_grade (which is calculated based on gpa, & inserted when record is saved) semester 6 518 95 A+ 1 6 534 100 A+ 1
Затем я рассчитываю отчет на конец семестра на основе оценок.Я использую gpa
чтобы рассчитать примененные баллы и общий средний балл.Основываясь на этом общем среднем балле, я хочу рассчитать рейтинг ученика для его класса и его формы (grade level) в целом.Как мне это сделать, не сохраняя в базе данных этот предыдущий ранг?Кроме того, можно ли это сделать из представления в CodeIgniter?Если да, то каков наилучший способ сделать это?
Решение
Можно ли это сделать в Code Igniter? Да, вы должны быть в состоянии.
Должно ли это быть сделано в представлении? Нет, вы не должны выполнять свои вычисления в представлении.Создайте класс и используйте его при создании модели для обработки оценок.Ваше представление должно использоваться только для рендеринга вашего пользовательского интерфейса.
Другие советы
Я бы предложил сделать это в Модели, когда вы получаете свои данные из MySQL.Таким образом, все ваши данные будут отсортированы и готовы к использованию, когда вы получите их обратно.
Взгляните на http://rpbouman.blogspot.com/2009/09/mysql-another-ranking-trick.html о способе ранжирования данных в SQL-запросе.
Я бы не рекомендовал что-либо вычислять в представлении.
Я бы посоветовал, если вы используете codeigniter для работы с фреймворком MVC, то, возможно, у вас есть модель, представляющая описываемую вами функциональность, и контроллер для объединения этой модели и вашего представления.
Я бы также предложил это видеоурок по codeigniter за очень хороший обзор фреймворка и по написанию приложений MVC.