PDA

View Full Version : COUNT pollvotes and display


Karl89
07-07-2008, 12:47 PM
$vote = $db->query_read("SELECT forum.forumid, forum.title, forum.parentid, poll.pollid, poll.voters, pollvote.voteoption
FROM " . TABLE_PREFIX . "forum AS forum
LEFT JOIN " . TABLE_PREFIX . "poll AS poll ON(poll.pollid = forum.forumid)
LEFT JOIN " . TABLE_PREFIX . "pollvote AS pollvote ON(pollvote.pollid = poll.pollid)
ORDER BY forum.title
");

$swapped=0;

while ( $vote2 = $db->fetch_array($vote)) {

$voters = fetch_censored_text($vote2['voters']);

if ($swapped == 0) {
$tempvoters = $voters;
} else {
$tempvoters = $tempvoters;
}

if ($tempvoters > 0) {
$voteoption = fetch_censored_text($vote2['voteoption']);
$cheapest = $cheapest + $voteoption;
$tempvoters--;
$swapped == 1;
} else {
$vote2['title'] = fetch_censored_text($vote2['title']);
$vote2['forumid'] = fetch_censored_text($vote2['forumid']);
$cheapest == 0;
$swapped == 0;
eval('$vote3 .= "' . fetch_template('Votes') . '";');
}
}

I'm trying to create a mod that pulls the Forum Title and matching Poll Votes. The trouble is, I need to add the Poll Votes together for each Poll.

The above code sort of works but it stops before it's pulled all the data, I think this has something to do with the while loop running it's course before it's retrieved all the info.

Example of what 'm trying to achieve
---------------------------------------------------

Forum 1 (45 Vote Total)
Forum 2 (0 Vote Total)
Forum 3 (22 Vote Total)
Forum 4 (14 Vote Total)

I hope that's clear enough, and thanks for looking.

Opserty
07-07-2008, 12:58 PM
LEFT JOIN " . TABLE_PREFIX . "poll AS poll ON(poll.pollid = forum.forumid)

Should pollid be forumid?

Maybe you could use the COUNT(xxxx) MySQL function somehow? (Check google for information on it)

Karl89
07-07-2008, 01:02 PM
yes the pollid will match the forumid, which should make it easier to pull the correct data ;)

--------------- Added 1215446827 at 1215446827 ---------------

tried the COUNT method, still no joy :(

--------------- Added 1215446986 at 1215446986 ---------------

the closest I've come is below,

$num=1;

while ( $retail2 = $db->fetch_array($retail)) {

if ($num == 0) {
$num=0;
} else {
$retail2['title'] = fetch_censored_text($retail2['title']);
$retail2['forumid'] = fetch_censored_text($retail2['forumid']);
$voters = fetch_censored_text($retail2['voters']);
$voterssave = $voters;
$total = 0;
}

if ($voters > 1) {
$votechoice = fetch_censored_text($retail2['voteoption']);
$total = $total + $votechoice;
$voters--;
$num=0;
} else {
$pollpercentage = ($total * 100 / $voterssave) / 10;
$num=1;
eval('$retail3 .= "' . fetch_template('Template') . '";');
}

}


This calculates the first poll (excluding the final poll vote) and then skips the other forums.

Karl89
07-08-2008, 04:03 PM
sorted, please close.

Opserty
07-08-2008, 05:46 PM
Maybe post your final query so someone else searching can find it? :rolleyes: