Zum Inhalt springen

pbsurvey / nc_pbsurveyfesimplestats statt % Durchschnitssnote ausgeben

Erstellt am 27. August 2009 · 2 Antworten · letzte Antwort am 18. Dezember 2009

Tags: Frage

elv1s ·

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

elv1s ·

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.

function calculatePercentages() {
	foreach($this->questions as $iQuestionKey => $aItem) {
		if(!in_array($aItem->iQuestionType, array(6, 8, 9))) {
			$iTotal = $aItem->iTotal;
			foreach($aItem->aAnswers as $iAnswerKey => $aAnswer) {
				$iAnswerTotal = $aAnswer->iAmount;
				$iAnswerPercentage = $iTotal !=0 ? ($iAnswerTotal / $iTotal) * 100 : 0;
$this->questions[$iQuestionKey]->aAnswers[$iAnswerKey]->setPercentage($iAnswerPercentage);
			}
		} else {
			foreach($aItem->aRows as $iRowKey => $aRow) {
				$iTotal = $aRow->iTotal;
				foreach($aRow->aAnswers as $iAnswerKey => $aAnswer) {
			$iAnswerTotal = $aAnswer->iAmount;
			$iAnswerPercentage = $iTotal !=0 ? ($iAnswerTotal / $iTotal) * 100 : 0;
$this->questions[$iQuestionKey]->aRows[$iRowKey]->aAnswers[$iAnswerKey]->setPercentage($iAnswerPercentage);
			}
		}
	}
}
}

Gerade die Stelle

$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