function umfrage() {
global $wpdb;
$upd_query = "SELECT FROM_UNIXTIME(pollip_timestamp,'%d.%m.%Y um %H:%i:%s') AS polliptime_ger, pollip_aid, polla_aid, polla_answers, pollq_active, pollq_question,pollip_qid, pollip_timestamp FROM $wpdb->pollsip
INNER JOIN ($wpdb->pollsq AS pq ON $wpdb->pollsip.pollip_qid = pq.pollq_id)
INNER JOIN $wpdb->pollsa AS pa ON $wpdb->pollsip.pollip_aid = pa.polla_aid
WHERE pollq_active = '1'
ORDER BY pollip_timestamp DESC
LIMIT 3";
$upd_result = $wpdb->get_results($upd_query);
if ( empty($upd_result) ) {
echo '... keine Abstimmung';
}
foreach ($upd_result as $updat) :
$polliptime_ger = $updat->polliptime_ger;
$pollq_question = $updat->pollq_question;
$pollip_qid = $updat->pollip_qid;
$polla_answers = $updat->polla_answers;
echo '
-
- ‚; echo ‚
- ‚.$updat->pollq_question.‘,
‚.$updat->polliptime_ger.‘
‚.$updat->polla_answers.‘
- ‚.$updat->pollq_question.‘,
‚; echo ‚
‚; endforeach;
So schaut der Code aus, den ich in diesem Artikel veröffentlicht habe.
Nutzt man in seinem Blog WP-Polls, um damit Umfragen zu den verschiedensten Artikeln durchzuführen, kann man mit diesem Code Angaben zu den Umfragen anzeigen lassen, bei denen zuletzt eine Antwort gewählt wurde.
Nun habe ich diesen Code noch um ein paar Angaben erweitert. Zudem wurde er – dank der Hilfe des Forums von Seitenreport.de – noch ein wenig zusammengedampft. Denn die Jungs halfen mir bei einem Problem, das ich auch aufgrund meiner geringen PHP-Kenntnisse nicht gelöst bekam!
Denn ich hatte mir in den Kopf gesetzt, zu den jeweiligen Ausgaben noch angeben zu lassen, wieviele Leute für die zuletzt gewählte Antwort auch schon gevotet haben.
Leider aber gibt es diesbezüglich aber ja sowetwas wie Singular und Plural, also Ein- und Mehrzahl! Und das war es, was ich nicht auf die Reihe bekam! Bei mir hieß es – egal ob nur 1 Person schon die gleiche Antwort gewählt hatte oder ob es 3, 4 oder noch mehr Besucher waren:
x Besucher stimmte auch so ab
oder es hieß
x Besucher stimmten auch so ab!
Aber es muss ja variieren:
Denn bei 1 weiterem Besucher müsste die erste Version ausgegeben werden, bei 2 oder mehr Leuten die für die gleiche Antwort abgestimmt haben kommt die 2. Version zur Ausgabe!
Und nachdem ich das mit Hilfe des Forums nun geregelt bekommen habe, möchte ich Euch den veränderten Code nicht vorenthalten.
Er sieht so aus:
function umfrage() {
global $wpdb;
$upd_query = "SELECT FROM_UNIXTIME(pollip_timestamp,'%d.%m.%Y um %H:%i:%s') AS polliptime_ger, pollip_aid, polla_aid, polla_answers, polla_votes, pollq_active, pollq_question,pollip_qid, pollip_timestamp FROM $wpdb->pollsip
INNER JOIN $wpdb->pollsq AS pq ON $wpdb->pollsip.pollip_qid = pq.pollq_id
INNER JOIN $wpdb->pollsa AS pa ON $wpdb->pollsip.pollip_aid = pa.polla_aid
WHERE pollq_active = '1'
ORDER BY pollip_timestamp DESC
LIMIT 3";
$upd_result = $wpdb->get_results($upd_query);
if ( empty($upd_result) ) {
echo '
Zur Zeit keine Umfrage aktiv
‚; } foreach ($upd_result as $updat) { $cntVotedUser = $updat->polla_votes – 1; $personsString = ($cntVotedUser == 1) ? ‚ weiterer Besucher stimmte‘ : ‚ weitere Besucher stimmten‘; echo ‚
‚; echo ‚
‚.$updat->pollq_question.‘
abgestimmt am: ‚.$updat->polliptime_ger.‘
Letzte gewählte Antwort:
‚.$updat->polla_answers.‘‚; if ($updat->polla_votes == 1) { echo (‚
Erste Stimme für diese Antwort‚); } elseif ($updat->polla_votes > 1) { echo ‚
‚. $cntVotedUser . $personsString .‘ auch so ab‚; } echo ‚
‚; } }
Entscheidend für die korrekte Ausgabe entweder von Einzahl oder Mehrzahl sind hierbei die Zeilen 14 und 15. Die Angabe -1 am Ende von Zeile 14 sorgt noch dafür, das von den gesamten Stimmen für die zuletzt gewählte Antwort eine Stimme abgezogen wird. Das verhindert, das die gesamte Anzahl der für eine Antwort abgegebenen Stimmen angezeigt wird!
Wollt ihr also – so wie ich – ausgeben, wie viele Besucher ebenfalls die gleiche Antwort gewählt haben, lasst ihr den Code wie er ist. Wollt ihr hingegen ausgeben, wieviele Besucher nun inklusive der letzten Antwort selbige gewählt haben, müsstet ihr das -1 also weglassen!
In sofern ist der Code nun wie ich ihn gerne haben wollte.
Einziges Problem weiterhin ist nur der Timestamp, der 2 Stunden in der Zukunft liegt! Falls da jemand eine Lösung hat: Nur her damit!