pbsurvey / nc_pbsurveyfesimplestats statt % Durchschnitssnote ausgeben

  • elv1s elv1s
    Jedi-Meister
    0 x
    494 Beiträge
    0 Hilfreiche Beiträge
    27. 08. 2009, 01:59

    Hallo,

    gibt es auch eine Möglichkeit die Ergebnisse nicht als % sondern als Durchschnittsnote auszugeben. Mann kan ja im Backend eingeben wieviel Punkte jedes Antwort wert ist.

    Es wäre toll wenn man z.B.
    Frage 1
    Antwort 1 - 3 Punkte
    Antwort 2 - 5 Punkte
    Antwort 3 - 10 Punkte

    Frage 2
    Antwort 1 - 3 Punkte
    Antwort 2 - 5 Punkte
    Antwort 3 - 10 Punkte

    Dann hätte ich gerne als ergebnis pro Antwort eine Durchschnittsnote und eine Gesamt-Durchschnittsnote.

    Also,
    Frage 1 (10 Antworte)
    Antwort 1 - (3x 3Punkte =9)
    Antwort 2 - (6x 5Punkte =30)
    Antwort 3 - (1x 10Punkte =10)
    -----------------------
    macht durchschnittlich für Frage 1 - 4,9 (49/10 Antworte)

    Frage 2 (10 Antworte)
    Antwort 1 - (4x 3Punkte =12)
    Antwort 2 - (2x 5Punkte =10)
    Antwort 3 - (4x 10Punkte =40)
    -----------------------
    macht durchschnittlich für Frage 2 - 6,2 (62/10 Antworte)

    -----------------------
    macht durchschnittlich für Frage 1 & Frage 2 - 5,55 (111/20 Antworte)

    Wäre toll wenn jemand eini Vorschlag hat wie dies umzusetzten wäre.

    Danke und viele Grüße


  • 1
  • elv1s elv1s
    Jedi-Meister
    0 x
    494 Beiträge
    0 Hilfreiche Beiträge
    27. 08. 2009, 13:21

    Hallo,

    also ich bin nun ein wenig weiter gekommen..

    Ich habe ext. nc_pbsurveyfesimplestats installiert. Damit kann man eben Statistik / Ergebnisse im Frontend ausgeben.
    Dies funktioniert soweit auch, nur werden dies eben in Prozente ausgegeben und ich möchte eben eine Durchschnittsnote ausrechnen lassen.

    Ich habe mir jetzt mal folgende Datei angeschaut - nc_pbsurveyfesimplestats/lib/class.tx_ncpbsurveyfesimplestats_questions.php

    Da habe ich eine bzw. zwei Stelle gefunden wo der Rechnenarbeit stattfindet.

    1. function calculatePercentages() {
    2. foreach($this->questions as $iQuestionKey => $aItem) {
    3. if(!in_array($aItem->iQuestionType, array(6, 8, 9))) {
    4. $iTotal = $aItem->iTotal;
    5. foreach($aItem->aAnswers as $iAnswerKey => $aAnswer) {
    6. $iAnswerTotal = $aAnswer->iAmount;
    7. $iAnswerPercentage = $iTotal !=0 ? ($iAnswerTotal / $iTotal) * 100 : 0;
    8. $this->questions[$iQuestionKey]->aAnswers[$iAnswerKey]->setPercentage($iAnswerPercentage);
    9. }
    10. } else {
    11. foreach($aItem->aRows as $iRowKey => $aRow) {
    12. $iTotal = $aRow->iTotal;
    13. foreach($aRow->aAnswers as $iAnswerKey => $aAnswer) {
    14. $iAnswerTotal = $aAnswer->iAmount;
    15. $iAnswerPercentage = $iTotal !=0 ? ($iAnswerTotal / $iTotal) * 100 : 0;
    16. $this->questions[$iQuestionKey]->aRows[$iRowKey]->aAnswers[$iAnswerKey]->setPercentage($iAnswerPercentage);
    17. }
    18. }
    19. }
    20. }
    21. }

    Gerade die Stelle

    1. $iAnswerPercentage = $iTotal !=0 ? ($iAnswerTotal / $iTotal) * 100 : 0;

    iAnswerTotal steht für Anzahl von eine bestimmte Antwort
    und iTotal für die insgesamt abgegebene Antworten pro Frage.

    ### Durchschnittsnote pro Frage
    Nun muss ich aus der mysql Tabelle "tx_pbsurvey_answers" / Spalte "answer" alle ergebnisse für eine bestimmte Frage (mysql spalte "question") abfragen und zusammenrechnen und diesen Zahl dann durch iAnswerTotal teilen

    ### Durchschnittsnote insgesamt (alle Fragen zusammen)
    Nun muss ich aus der mysql Tabelle "tx_pbsurvey_answers" / Spalte "answer" alle ergebnisse für eine bestimmte Ordner (mysql spalte "pid") abfragen und zusammenrechnen und diesen Zahl dann durch iTotal teilen.

    Nur...... Da fehlen mir leider nur PHP know-how.

    Wenn jemand da helfen könnte, wäre super.
    Gruss

  • lasse_69 lasse_69
    Padawan
    0 x
    50 Beiträge
    0 Hilfreiche Beiträge
    18. 12. 2009, 12:23

    Hallo elv1s,

    hast du mittlerweile eine Lösung?

    Gruß,
    lasse

  • 1