Seite 1 von 1

Abstimmungsergebnis sortieren?

Verfasst: 11.04.2004 16:05
von Jerichos
Hallo!

Ich hab die Suche schon bemüht und auch schon auf diversen anderen Seiten nach diesem Mod gesucht, bin aber nicht fündig geworden.
Eigentlich sollte dies selbstverständlich sein, aber anscheinend ist dem nicht so.

Also, wie kann ich relativ unkompliziert die Abstimmungsergebnisse nach dem Ende der Abstimmung sortieren und zwar nach der Prozentanzahl. Ich hab den Mod für das Verstecken der Polls installiert, sprich erst nach X Tagen wird die versteckte Abstimmung beendet und das Ergebnis angezeigt. Nur warum wird dann das Ergebnis nicht sortiert. Vor allem, wenn man 60 Antwortmöglichkeiten gibt, dann ist das Endergebnis nicht wirklich übersichtlich, von daher würd ich mich über jede Anregung in diesem Punkt freuen.

Danke und Frohe Ostern! ;)

Verfasst: 11.04.2004 16:51
von PhilippK
Gehe in die viewtopic.php, suche dort:

Code: Alles auswählen

	$sql = "SELECT vd.vote_id, vd.vote_text, vd.vote_start, vd.vote_length, vr.vote_option_id, vr.vote_option_text, vr.vote_result
		FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr
		WHERE vd.topic_id = $topic_id
			AND vr.vote_id = vd.vote_id
		ORDER BY vr.vote_option_id ASC";
und ersetze dort

Code: Alles auswählen

		ORDER BY vr.vote_option_id ASC";
durch

Code: Alles auswählen

		ORDER BY vr.vote_result DESC";
Ist nicht getestet - daher bitte ausprobieren und anschließend eine Nachricht hinterlassen :-)

Gruß, Philipp

Verfasst: 11.04.2004 17:37
von Jerichos
Hallo Philipp,

die Zeile hab ich natürlich schon gefunden. Die Änderung funktioniert auch soweit, das Problem ist bloß, angenommen die Abstimmung ist versteckt, dann werden die Antworten ja nach dem vorläufigen Ergebnis sortiert. Somit ist der Sinn des Versteckens wieder zunichte gemacht.
Das müsste irgendwie anders zu Lösen sein.

Verfasst: 11.04.2004 17:54
von PhilippK
Dann füg mal nach

Code: Alles auswählen

		if ( $user_voted || $view_result || $poll_expired || !$is_auth['auth_vote'] || $forum_topic_data['topic_status'] == TOPIC_LOCKED )
		{
folgendes ein (es kann sein, dass der Code oben durch den Mod geändert wurde):

Code: Alles auswählen

			// Reget vote info and sort it by number of votes
			$sql = "SELECT vd.vote_id, vd.vote_text, vd.vote_start, vd.vote_length, vr.vote_option_id, vr.vote_option_text, vr.vote_result
				FROM " . VOTE_DESC_TABLE . " vd, " . VOTE_RESULTS_TABLE . " vr
				WHERE vd.topic_id = $topic_id
					AND vr.vote_id = vd.vote_id
				ORDER BY vr.vote_result DESC, vr.vote_option_id ASC";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, "Could not obtain vote data for this topic", '', __LINE__, __FILE__, $sql);
			}
		
			if ( !($vote_info = $db->sql_fetchrowset($result)) )
			{
				message_die(GENERAL_ERROR, "Could not obtain vote data for this topic", '', __LINE__, __FILE__, $sql);
			}
Gruß, Philipp

Verfasst: 11.04.2004 18:02
von Jerichos
Bingo!

Recht herzlichen Dank, Philipp, für den schnellen Support. :grin:

So klappt es, warum bin da nicht selber drauf gekommen. *ankopfschlag* ;)

Noch nen schönen Ostersonntag!