В PHP / CodeIgniter как вы вычисляете класс и формируете ранг на основе оценок для студента?

StackOverflow https://stackoverflow.com/questions/1756779

  •  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?Если да, то каков наилучший способ сделать это?

Это было полезно?

Решение

  1. Можно ли это сделать в Code Igniter? Да, вы должны быть в состоянии.

  2. Должно ли это быть сделано в представлении? Нет, вы не должны выполнять свои вычисления в представлении.Создайте класс и используйте его при создании модели для обработки оценок.Ваше представление должно использоваться только для рендеринга вашего пользовательского интерфейса.

Другие советы

Я бы предложил сделать это в Модели, когда вы получаете свои данные из MySQL.Таким образом, все ваши данные будут отсортированы и готовы к использованию, когда вы получите их обратно.

Взгляните на http://rpbouman.blogspot.com/2009/09/mysql-another-ranking-trick.html о способе ранжирования данных в SQL-запросе.

Я бы не рекомендовал что-либо вычислять в представлении.

Я бы посоветовал, если вы используете codeigniter для работы с фреймворком MVC, то, возможно, у вас есть модель, представляющая описываемую вами функциональность, и контроллер для объединения этой модели и вашего представления.

Я бы также предложил это видеоурок по codeigniter за очень хороший обзор фреймворка и по написанию приложений MVC.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top