|
Verfasst am: 27. 08. 2009 [01:59]
|
|
elv1s
Themenersteller
Dabei seit: 05.10.2003
Beiträge: 494
|
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
|
|
Verfasst am: 27. 08. 2009 [13:21]
|
|
elv1s
Themenersteller
Dabei seit: 05.10.2003
Beiträge: 494
|
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
|
|
Verfasst am: 18. 12. 2009 [12:23]
|
|
lasse_69
Dabei seit: 20.05.2005
Beiträge: 42
|
Hallo elv1s,
hast du mittlerweile eine Lösung?
Gruß,
lasse
|