Bekijk Volledige Versie : POLL Probleem
Ik gebruik een MS Access database en heb hier een poll op lopen.
De database vestaat uit 2 kolommen (ID en Choice).
ID=autonummer
Choice=number
Hoe kan ik in de resultaat pagina het resultaat in % weergeven?
vb: http://www.chpe.nl/test/index.asp
In de kolom "Choice" van de database staan de nummers die corresponderen
met de invoer (Ja=1, Nee=2 etc):
ID | Choice
------------
1 1
2 1
3 3
4 2
5 1
De bedoeling is dat er in asp de kolom "Choice" de 1en, 2en en 3en worden
"gefilterd" zodat het resultaat in % zichtbaar wordt.
Rene Pijlman
28/10/03, 16:45
MAX:
>Hoe kan ik in de resultaat pagina het resultaat in % weergeven?
In een mooi donkerblauw fontje bijvoorbeeld :-)
Tellen doe je in SQL met SELECT COUNT(*) en percentages bepaal je door het
deel van het geheel maal 100 te doen.
Bijvoorbeeld: 3 keer ja, 2 keer nee is totaal 5. En dus 3*100/5=60% ja en
2*100/5=40% nee.
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
Ja dat tellen snap ik ... in excel heb ik dit wel voor elkaar, maar in
access (asp) niet.
Dit is de code die ik gebruik, wat zou er b.v. moeten staan bij het "%"
teken tussen <html></html> (of misschien moet er ook wel wat staan in de
scripting, ik kom er niet meer uit:
<%@LANGUAGE="JAVASCRIPT"%>
<!--#include file="../Connections/connPoll.asp" -->
<%
var rs_poll = Server.CreateObject("ADODB.Recordset");
rs_poll.ActiveConnection = MM_connPoll_STRING;
rs_poll.Source = "SELECT * FROM mxpoll";
rs_poll.CursorType = 0;
rs_poll.CursorLocation = 2;
rs_poll.LockType = 3;
rs_poll.Open();
var rs_poll_numRows = 0;
%>
<%
// *** Recordset Stats, Move To Record, and Go To Record: declare stats
variables
// set the record count
var rs_poll_total = rs_poll.RecordCount;
// set the number of rows displayed on this page
if (rs_poll_numRows < 0) { // if repeat region set to all records
rs_poll_numRows = rs_poll_total;
} else if (rs_poll_numRows == 0) { // if no repeat regions
rs_poll_numRows = 1;
}
// set the first and last displayed record
var rs_poll_first = 1;
var rs_poll_last = rs_poll_first + rs_poll_numRows - 1;
// if we have the correct record count, check the other stats
if (rs_poll_total != -1) {
rs_poll_numRows = Math.min(rs_poll_numRows, rs_poll_total);
rs_poll_first = Math.min(rs_poll_first, rs_poll_total);
rs_poll_last = Math.min(rs_poll_last, rs_poll_total);
}
%>
<%
// *** Recordset Stats: if we don't know the record count, manually count
them
if (rs_poll_total == -1) {
// count the total records by iterating through the recordset
for (rs_poll_total=0; !rs_poll.EOF; rs_poll.MoveNext()) {
rs_poll_total++;
}
// reset the cursor to the beginning
if (rs_poll.CursorType > 0) {
if (!rs_poll.BOF) rs_poll.MoveFirst();
} else {
rs_poll.Requery();
}
// set the number of rows displayed on this page
if (rs_poll_numRows < 0 || rs_poll_numRows > rs_poll_total) {
rs_poll_numRows = rs_poll_total;
}
// set the first and last displayed record
rs_poll_last = Math.min(rs_poll_first + rs_poll_numRows - 1,
rs_poll_total);
rs_poll_first = Math.min(rs_poll_first, rs_poll_total);
}
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="********" text="#000000"
background="../images/background.jpg">
<table width="37%" border="1">
<tr>
<td width="24%">Bear</td>
<td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>%</td>
</tr>
<tr>
<td width="24%">Whine</td>
<td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
</tr>
<tr>
<td width="24%">Whiskey</td>
<td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
</tr>
<tr>
<td width="24%">Tea</td>
<td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
</tr>
</table>
<p>A total of <%=(rs_poll_total)%> people voted !</p>
</body>
</html>
<%
rs_poll.Close();
%>
"Rene Pijlman" <reply.in.the.newsgroup@my.address.is.invalid> wrote in
message news:h82tpvkr3taqtsifefaentooq9tcflk6k8@4ax.com...
> MAX:
> >Hoe kan ik in de resultaat pagina het resultaat in % weergeven?
>
> In een mooi donkerblauw fontje bijvoorbeeld :-)
>
> Tellen doe je in SQL met SELECT COUNT(*) en percentages bepaal je door het
> deel van het geheel maal 100 te doen.
>
> Bijvoorbeeld: 3 keer ja, 2 keer nee is totaal 5. En dus 3*100/5=60% ja en
> 2*100/5=40% nee.
>
> --
> René Pijlman
>
> Wat wil jij leren? http://www.leren.nl
Daniel Tryba
28/10/03, 17:45
Al toppostend schreef MAX <kingpin@hotmail.com>:
> Ja dat tellen snap ik ... in excel heb ik dit wel voor elkaar, maar in
> access (asp) niet.
> Dit is de code die ik gebruik, wat zou er b.v. moeten staan bij het "%"
> teken tussen <html></html> (of misschien moet er ook wel wat staan in de
> scripting, ik kom er niet meer uit:
Wat dacht je van precies wat Rene schreef.
> // set the record count
> var rs_poll_total = rs_poll.RecordCount;
Het totale aantal!
[knip]
> <tr>
> <td width="24%">Bear</td>
Beren?
> <td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>%</td>
> </tr>
> <tr>
> <td width="24%">Whine</td>
Zeuren?
Contoleer je spelling eens. Het lijkt erop dat het over dranken gaat.
> <td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
> </tr>
> <tr>
> <td width="24%">Whiskey</td>
> <td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
> </tr>
> <tr>
> <td width="24%">Tea</td>
> <td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
Waarin hebben alle keuzemogelijkheden de zelfde waarde? Maar als je die
dus met 100 vermenigvuldigt en deelt door het totale aantal dan heb je
het percentage. In javascript:
rs_poll.Fields.Item("Choice").Value*100/rs_total
BTW leer quoten: knip en vat samen. Je toont nu een uiterst disrespect
voor je lezers omdat je te lui bent om het in een leesbare vorm te
gieten.
--
Daniel Tryba
(quote)BTW leer quoten: knip en vat samen. Je toont nu een uiterst
disrespect voor je lezers omdat je te lui bent om het in een leesbare vorm
te gieten.(/quote)
Snap even niet wat je bedoelt, de opsomming is de totale scripting van mijn
result.asp pagina !
Dus als ik ga knippen weet ik misschien niet wat ik wel en niet moet
weghalen.
Maar goed, die percentage omrekening was ik wel uitgekomen, misschien was
mijn vraag niet goed geformuleerd:
- hoe filter ik de waarden uit mijn kolom (database) zodat ik ze als % kan
weergeven.
Dus in dezelfde kolom staan waarden zoals 1,2,3 (zie vorige mail) die
corresponderen met Ja=1, Nee=2 etc.
Kan iemand mij hier raad in geven
Alvast bedankt
"Daniel Tryba" <news_nl.internet.www.server-side@canopus.nl> wrote in
message news:bnm63r$8gv$1@news.tue.nl...
> Al toppostend schreef MAX <kingpin@hotmail.com>:
>
> > Ja dat tellen snap ik ... in excel heb ik dit wel voor elkaar, maar in
> > access (asp) niet.
> > Dit is de code die ik gebruik, wat zou er b.v. moeten staan bij het "%"
> > teken tussen <html></html> (of misschien moet er ook wel wat staan in de
> > scripting, ik kom er niet meer uit:
>
> Wat dacht je van precies wat Rene schreef.
>
> > // set the record count
> > var rs_poll_total = rs_poll.RecordCount;
>
> Het totale aantal!
>
> [knip]
> > <tr>
> > <td width="24%">Bear</td>
>
> Beren?
>
> > <td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>%</td>
> > </tr>
> > <tr>
> > <td width="24%">Whine</td>
>
> Zeuren?
>
> Contoleer je spelling eens. Het lijkt erop dat het over dranken gaat.
>
> > <td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
> > </tr>
> > <tr>
> > <td width="24%">Whiskey</td>
> > <td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
> > </tr>
> > <tr>
> > <td width="24%">Tea</td>
> > <td width="76%"><%=(rs_poll.Fields.Item("Choice").Value)%>% </td>
>
> Waarin hebben alle keuzemogelijkheden de zelfde waarde? Maar als je die
> dus met 100 vermenigvuldigt en deelt door het totale aantal dan heb je
> het percentage. In javascript:
> rs_poll.Fields.Item("Choice").Value*100/rs_total
>
> BTW leer quoten: knip en vat samen. Je toont nu een uiterst disrespect
> voor je lezers omdat je te lui bent om het in een leesbare vorm te
> gieten.
>
> --
>
> Daniel Tryba
>
Maarten Wierda
28/10/03, 20:00
MAX wrote:
> (quote)BTW leer quoten: knip en vat samen. Je toont nu een uiterst
> disrespect voor je lezers omdat je te lui bent om het in een leesbare vorm
> te gieten.(/quote)
>
> Snap even niet wat je bedoelt, de opsomming is de totale scripting van mijn
> result.asp pagina !
Zie <http://www.hensema.net/quote/>
> Maar goed, die percentage omrekening was ik wel uitgekomen, misschien was
> mijn vraag niet goed geformuleerd:
>
> - hoe filter ik de waarden uit mijn kolom (database) zodat ik ze als % kan
> weergeven.
Volgens mij heb je dan een variabele 'totaal' nodig.
+-
SELECT COUNT(1) AS totaalStemmen FROM POLL
SELECT ROUND(COUNT(1)/totaalStemmen)*100) FROM pollWHERE Choice = 1
--
Cheers, Maarten Wierda
cp: Mad Capsule Markets - --Humo-
"Teenage angst has paid off well, now I'm bored and old"
Rene Pijlman
29/10/03, 00:45
MAX:
>hoe filter ik de waarden uit mijn kolom (database)
Aan de SQL-query toevoegen:
WHERE kolom = waarde
P.S. Ziehier goed quoten in aktie. Zie je het verschil?
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
Ja ik zie het, bedankt, het werkt nu.
"Rene Pijlman" <reply.in.the.newsgroup@my.address.is.invalid> wrote in
message news:5ovtpv82fjboaaic6od0br05asp94qdgfq@4ax.com...
> MAX:
> >hoe filter ik de waarden uit mijn kolom (database)
>
> Aan de SQL-query toevoegen:
>
> WHERE kolom = waarde
>
> P.S. Ziehier goed quoten in aktie. Zie je het verschil?
>
> --
> René Pijlman
>
> Wat wil jij leren? http://www.leren.nl
Rene Pijlman
29/10/03, 13:15
MAX:
>Ja ik zie het, bedankt
Wat zie je?
>> P.S. Ziehier goed quoten in aktie. Zie je het verschil?
Je praat ondersteboven. De meeste mensen lezen van boven naar onder en van
links naar rechts. Dus reageer je onder hetgeen waarop je reageert.
--
René Pijlman
Wat wil jij leren? http://www.leren.nl
> Rene Pijlman
> Je praat ondersteboven. De meeste mensen lezen van boven naar onder en van
> links naar rechts. Dus reageer je onder hetgeen waarop je reageert.
ok, zo beter?
Ik bedoelde te zeggen dat de poll nu werkt, bedankt.
Mvg,
Max
Maarten Wierda
29/10/03, 16:45
MAX wrote:
>>Je praat ondersteboven. De meeste mensen lezen van boven naar onder en van
>>links naar rechts. Dus reageer je onder hetgeen waarop je reageert.
>
> ok, zo beter?
Ja.
> Ik bedoelde te zeggen dat de poll nu werkt, bedankt.
Weer eentje bekeerd ;-)
--
Cheers, Maarten Wierda
"Teenage angst has paid off well, now I'm bored and old"