Avatar billede twiggy Nybegynder
03. december 2005 - 22:48 Der er 13 kommentarer og
1 løsning

Simpel Afstemning

Jeg har et lille community hvor en bruger skal kunne oprette en afstemning :)

Man skal kunne skrive et spørgsmål/overskrift og op til 6 valgmuligheder :)

HAr ingen anelse om hvordan desværre :-(

brugerID <- er navnet på feltet der indeholder brugerens id.

Det behøves ikke at være noget fancy, den skal ikke bruge cookies for at tjekke om man har stemt, og når den viser resultates eks:

Overskrift:

Valg1 _____| 25%
Valg2 _________| 50%
Valg3 __| 10%
Valg4 ___| 15%

HÅber i vil hjælpe mig :)
Avatar billede Slettet bruger
03. december 2005 - 23:37 #1
Avatar billede twiggy Nybegynder
04. december 2005 - 00:00 #2
Ja har kigget igennem over 200, men alle køre over cookies :o

Såå :-(
Avatar billede JOHN_DOE Nybegynder
04. december 2005 - 11:41 #3
Skal det være at du bare har en afstemning eller skal det være at folk kan oprette afstemninger?
Avatar billede JOHN_DOE Nybegynder
04. december 2005 - 12:16 #4
Dette her burte være det hele!
Avatar billede JOHN_DOE Nybegynder
04. december 2005 - 12:16 #5
Undskyld jeg fik ikke læst hele spm'et..

Først laver vi en tabel

create table vote_body (
id int(11) not null auto_increment, // ID'en på afstemningen
af int(11) not null, // bruger ID'et
vote0 char(255) not null, // Er spm'et
vote1 char(255) not null, // Er svar 1
vote2 char(255) not null, // Er svar 2
vote3 char(255) not null, // Er svar 3
vote4 char(255) not null, // Er svar 4
vote5 char(255) not null, // Er svar 5
vote6 char(255) not null, // Er svar 6
unique(id)
)

create table vote_svar (
id int(11) not null auto_increment,
af int(11) not null, // Den bruger der har stems ID
svar int(1) not null, // SVARET
til int(11) not null, // ID'en til afstemningen i vote_body
unique(id)
)



Nu har vi så lavet tabellen så skal vi oprette afstemningen.


opret.php
-------------------------------------
<?
// Link til database


// Denne side opretter en afstemning hvis brugerens ID, spm, svar1 og svar2 er der..

if (($af) && ($vote0) && ($vote1) && ($vote2)) {
echo "Din afstemning er nu oprettet!";
mysql_query("INSERT INTO vote_body (af,vote0,vote1,vote2,vote3,vote4,vote5,vote6) VALUES ('$af','$vote0','$vote1','$vote2','$vote3','$vote4','$vote5','$vote6')");
}
else {
?>
<form action="opret.php" method="post">
BRUGER ID: * <input name="af" type="text"><br>
Spørgsmål: * <input name="vote0" type="text"><br>
Svar 1: * <input name="vote1" type="text"><br>
Svar 2: * <input name="vote2" type="text"><br>
Svar 3: <input name="vote3" type="text"><br>
Svar 4: <input name="vote4" type="text"><br>
Svar 5: <input name="vote5" type="text"><br>
Svar 6: <input name="vote6" type="text"><br>
* skal udfyldes.<br>
<input type="submit" value="Opret afstemning">
</form>
<?
}
?>




vis.php
--------------------------------------
<?
// Link til database


// Denne side Viser hvilke(n) afstemning(er) brugeren har oprettet! Eller en bruger får lov til at stemme
// Den enkle bruger bestemmes ud fra $brugerid

if ($action=='stem') {
if ($vote) {
  echo "Tak for din stemme!";
  mysql_query("INSERT INTO vote_svar (af,svar,til) VALUES ('$brugerid','$vote','$id')");
}
}
else {
$query = mysql_query("SELECT * FORM vote_body WHERE af = '$brugerid'");
while($row = mysql_fetch_array($query)) {
?>
<form action="vis.php?brugerid=<? echo $brugerid; ?>&action=stem&id=<? echo $row[id]; ?>" method="post">
<table>
  <tr>
  <td colspan="2"><b><? echo $row[vote0]; ?></b></td>
  </tr>
  <tr>
  <td><input name="vote" value="1" type="radio"></td>
  <td><? echo $row[vote1]; ?></td>
  </tr>
  <tr>
  <td><input name="vote" value="2" type="radio"></td>
  <td><? echo $row[vote2]; ?></td>
  </tr>
  <? if ($row[vote3]) { ?>
  <tr>
  <td><input name="vote" value="3" type="radio"></td>
  <td><? echo $row[vote3]; ?></td>
  </tr>
  <? } if ($row[vote4]) { ?>
  <tr>
  <td><input name="vote" value="4" type="radio"></td>
  <td><? echo $row[vote4]; ?></td>
  </tr>
  <? } if ($row[vote5]) { ?>
  <tr>
  <td><input name="vote" value="5" type="radio"></td>
  <td><? echo $row[vote5]; ?></td>
  </tr>
  <? } if ($row[vote6]) { ?>
  <tr>
  <td><input name="vote" value="6" type="radio"></td>
  <td><? echo $row[vote6]; ?></td>
  </tr>
  <? } ?>
</table>
</form>
<?
}
}
?>




result.php
---------------------------------------
<?
// Link til database



// Her udskriver vi resultatet af en bestemt afstemning bestemt af id

$query = mysql_query("SELECT * FORM vote_body WHERE id = '$id'");
while($row = mysql_fetch_array($query)) {
$antal = mysql_num_row($query);

// UDREGN - her finder vi ud af hvor mange svar de forskellige spm har fået..

$vote1q = mysql_query("SELECT * FORM vote_body WHERE id = '$id' AND svar = 1");
$vote1a = mysql_num_row($vote1q);

$vote2q = mysql_query("SELECT * FORM vote_body WHERE id = '$id' AND svar = 2");
$vote2a = mysql_num_row($vote1q);

if ($row[vote3]) {
  $vote2q = mysql_query("SELECT * FORM vote_body WHERE id = '$id' AND svar = 3");
  $vote2a = mysql_num_row($vote1q);
}

if ($row[vote4]) {
  $vote2q = mysql_query("SELECT * FORM vote_body WHERE id = '$id' AND svar = 4");
  $vote2a = mysql_num_row($vote1q);
}

if ($row[vote5]) {
  $vote2q = mysql_query("SELECT * FORM vote_body WHERE id = '$id' AND svar = 5");
  $vote2a = mysql_num_row($vote1q);
}

if ($row[vote6]) {
  $vote2q = mysql_query("SELECT * FORM vote_body WHERE id = '$id' AND svar = 6");
  $vote2a = mysql_num_row($vote1q);
}

// SLUT UDREGN

// Antal max bredte på baurometerne
  // Valg1 _____| 25%
  // Valg2 _________| 50%
  // Valg3 __| 10%
  // Valg4 ___| 15%

  $maxwidth = 200;

?>
<table>
  <tr>
  <td colspan="2"><b><? echo $row[vote0]; ?></b></td>
  </tr>
  <tr>
  <td><? echo $row[vote1]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote1a); ?>"><? echo round($maxwidth / $antal * $vote1a); ?></td>
  </tr>
  <tr>
  <td><? echo $row[vote2]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote2a); ?>"><? echo round($maxwidth / $antal * $vote2a); ?></td>
  </tr>
  <? if ($row[vote3]) { ?>
  <tr>
  <td><? echo $row[vote3]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote3a); ?>"><? echo round($maxwidth / $antal * $vote3a); ?></td>
  </tr>
  <? } if ($row[vote4]) { ?>
  <tr>
  <td><? echo $row[vote4]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote4a); ?>"><? echo round($maxwidth / $antal * $vote4a); ?></td>
  </tr>
  <? } if ($row[vote5]) { ?>
  <tr>
  <td><? echo $row[vote5]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote5a); ?>"><? echo round($maxwidth / $antal * $vote5a); ?></td>
  </tr>
  <? } if ($row[vote6]) { ?>
  <tr>
  <td><? echo $row[vote6]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote6a); ?>"><? echo round($maxwidth / $antal * $vote6a); ?></td>
  </tr>
  <? } ?>
</table>
<?
}
?>
Avatar billede JOHN_DOE Nybegynder
04. december 2005 - 12:20 #6
Der til sidst..
-----------------------------
<table>
  <tr>
  <td colspan="2"><b><? echo $row[vote0]; ?></b></td>
  </tr>
  <tr>
  <td><? echo $row[vote1]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote1a); ?>"><? echo round($maxwidth / $antal * $vote1a); ?> %</td>
  </tr>
  <tr>
  <td><? echo $row[vote2]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote2a); ?>"><? echo round($maxwidth / $antal * $vote2a); ?> %</td>
  </tr>
  <? if ($row[vote3]) { ?>
  <tr>
  <td><? echo $row[vote3]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote3a); ?>"><? echo round($maxwidth / $antal * $vote3a); ?> %</td>
  </tr>
  <? } if ($row[vote4]) { ?>
  <tr>
  <td><? echo $row[vote4]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote4a); ?>"><? echo round($maxwidth / $antal * $vote4a); ?> %</td>
  </tr>
  <? } if ($row[vote5]) { ?>
  <tr>
  <td><? echo $row[vote5]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote5a); ?>"><? echo round($maxwidth / $antal * $vote5a); ?> %</td>
  </tr>
  <? } if ($row[vote6]) { ?>
  <tr>
  <td><? echo $row[vote6]; ?></td>
  <td><img src="dot.gif" width="<? echo round($maxwidth / $antal * $vote6a); ?>"><? echo round($maxwidth / $antal * $vote6a); ?> %</td>
  </tr>
  <? } ?>
</table>
Avatar billede JOHN_DOE Nybegynder
04. december 2005 - 12:22 #7
Skulle det se sådan ud eller det var ikke nødvendigt med det giver mere forståelse.. jeg smed bare et "%"-tegn efter alle udreginger i tekst!

// Louv!
Avatar billede twiggy Nybegynder
04. december 2005 - 17:18 #8
Mange tak, det ser ud til at virke :)
- untagen når den skal vise resultatet,

$query = mysql_query("SELECT * FROM vote_body WHERE id = '$_GET[view]'");
$row = mysql_fetch_array($query);

$query2 = mysql_query("SELECT * FROM vote_svar WHERE til = '$_GET[view]'");

$antal = mysql_num_rows($query2);

$vote1q = mysql_query("SELECT * FROM vote_svar WHERE id = '$_GET[view]' AND svar = 1");
$vote1a = mysql_num_rows($vote1q);

$vote2q = mysql_query("SELECT * FROM vote_svar WHERE id = '$_GET[view]' AND svar = 2");
$vote2a = mysql_num_rows($vote2q);

if ($row[vote3]) {
  $vote3q = mysql_query("SELECT * FROM vote_svar WHERE id = '$_GET[view]' AND svar = 3");
  $vote3a = mysql_num_rows($vote3q);
}

if ($row[vote4]) {
  $vote4q = mysql_query("SELECT * FROM vote_svar WHERE id = '$_GET[view]' AND svar = 4");
  $vote4a = mysql_num_rows($vote4q);
}

if ($row[vote5]) {
  $vote5q = mysql_query("SELECT * FROM vote_svar WHERE id = '$_GET[view]' AND svar = 5");
  $vote5a = mysql_num_rows($vote5q);
}

if ($row[vote6]) {
  $vote6q = mysql_query("SELECT * FROM vote_svar WHERE id = '$_GET[view]' AND svar = 6");
  $vote6a = mysql_num_rows($vote6q);
}

  $maxwidth = 100;

?>


<table>
  <tr>
  <td colspan="2"><b><? echo $row[vote0]; ?></b></td>
  </tr>
  <tr>
  <td><? echo $row[vote1]; ?></td>
  <td><img src="dot.gif" height="9" width="<? echo round($maxwidth / $antal * $vote1a); ?>"><? echo round($maxwidth / $antal * $vote1a); ?> %</td>
  </tr>
  <tr>
  <td><? echo $row[vote2]; ?></td>
  <td><img src="dot.gif" height="9" width="<? echo round($maxwidth / $antal * $vote2a); ?>"><? echo round($maxwidth / $antal * $vote2a); ?> %</td>
  </tr>
  <? if ($row[vote3]) { ?>
  <tr>
  <td><? echo $row[vote3]; ?></td>
  <td><img src="dot.gif" height="9" width="<? echo round($maxwidth / $antal * $vote3a); ?>"><? echo round($maxwidth / $antal * $vote3a); ?> %</td>
  </tr>
  <? } if ($row[vote4]) { ?>
  <tr>
  <td><? echo $row[vote4]; ?></td>
  <td><img src="dot.gif" height="9" width="<? echo round($maxwidth / $antal * $vote4a); ?>"><? echo round($maxwidth / $antal * $vote4a); ?> %</td>
  </tr>
  <? } if ($row[vote5]) { ?>
  <tr>
  <td><? echo $row[vote5]; ?></td>
  <td><img src="dot.gif" height="9" width="<? echo round($maxwidth / $antal * $vote5a); ?>"><? echo round($maxwidth / $antal * $vote5a); ?> %</td>
  </tr>
  <? } if ($row[vote6]) { ?>
  <tr>
  <td><? echo $row[vote6]; ?></td>
  <td><img src="dot.gif" height="9" width="<? echo round($maxwidth / $antal * $vote6a); ?>"><? echo round($maxwidth / $antal * $vote6a); ?> %</td>
  </tr>
  <? } ?>
</table>

Således ser koden ud, men der er 2 stemmer angivet på en afstemning, men den viser kun den første :(

eks:

Spørgsmål.
Valg1 | 0%
Valg2 _________| 50%
Valg3 | 0%
Valg4 | 0%
Avatar billede JOHN_DOE Nybegynder
04. december 2005 - 19:59 #9
ok.. Du har fx. stemt sådan..

Valg1 0
Valg2 2
Valg3 0
Valg4 0

Men det vises kun..

Valg1 | 0%
Valg2 _________| 50%
Valg3 | 0%
Valg4 | 0%


ikke?
Avatar billede twiggy Nybegynder
05. december 2005 - 00:12 #10
Nej har eksempel stemt en gang på valg 1 og engang på valg 3, men den viser kun den første stemme, Dvs valg 1
Avatar billede twiggy Nybegynder
05. december 2005 - 17:43 #11
Jeg fandt ud af det, mange tak

- smid dit svar :)
Avatar billede JOHN_DOE Nybegynder
07. december 2005 - 12:24 #12
ok tak.. men hvordan gjorde du??

// Louv
Avatar billede JOHN_DOE Nybegynder
07. december 2005 - 12:25 #13
svar!
Avatar billede twiggy Nybegynder
11. december 2005 - 02:11 #14
lavede id til vote_id under alle de der queries. hvis du forstår :D
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester