Hjælp til oprettelse af poll

Tags:    programmering

<< < 12 > >>
Hej udviklere!

Vi har en fodboldklub, hvor vi hver måned gerne vil have mulighed for, at stemme på månedens spiller, via vores hjemmeside.

Desværre er jeg den af os, der har mest erfaring med websites osv., men er ikke helt stærk ud i programmering og databaser.

Det vi behøver er blot en lille feature, hvor vi kan liste alle medlemmerne ved navn, hvor de andre så kan krydse af hvilken de ønsker at stemme på.
Det lidt mere besværlige er, at det også ville være fedt med mulighed for, at tilknytte en kommentar til sin stemme, så man kunne give en begrundelse for valget.

Der behøver ikke være en tilgængelig resultatside efter man har stemt - det skal blot være holdlederen der skal have adgang til en side, hvor han kan se resultatet af afstemningen samt de tilknyttede kommentarer.

Derudover kommer der jo af og til nye spillere til, som vi skal have mulighed for, at tilføje på listen. Det gør ikke noget, at dette evt. skal skrives direkte i koden, da jeg har en lille smule erfaring i koder (rimelig html kendskab og en smule kendskab til php og asp), hvorfor det ikke vil være helt umuligt for mig at tilpasse, men i det store hele har jeg ingen idé om, hvordan sådan et simpelt afstemningssystem kan sættes op.

Er der nogen der vil være behjælpelige med dette?

Hvis der ikke er nogle der gider, så kan det være der i det mindste er nogle med nogle gode referencer så jeg selv kan prøve at se, om det er noget jeg kan finde ud af og evt. lære?

PFT! :)



16 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 8 karma
Sorter efter stemmer Sorter efter dato
Du bør undgå fast kodet navne, denne ændret kode bør storset gøre det samme som din dog bliver kommentarene liste i grupper for den stemme de var på.
Det kræver dog en tabel kaldet spiller med felterne navn og id, id er bare autoincrement.

forbehold for kode fejl da det er lavet direkte i udviklerens text area.


<?php
session_start();
mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx");
$result=mysql_query("SELECT id,navn FROM spiller ORDER BY navn");
$players=array();
while($row=mysql_fetch_array($result)){
$players[$row['id']]=array("navn"=>$row['navn'],'votes'=>0,'comments'=>array());
}
if(!empty($_GET['f']) || !isset($_SESSION['stemt'])) {
$kom = $_POST['kommentar'];
$stem = $_POST['stem'];
mysql_query("INSERT INTO stem(kommentar, stem) VALUES('$kom','$stem')");
$_SESSION['stemt'] = "jeps";
$result = mysql_query("SELECT * FROM stem GROUP BY stem DESC");
$inc=1/mysql_num_rows($result)*100;
while($row=mysql_fetch_assoc($result)){
$players[$row['stem']]['votes']+=inc;
$players[$row['stem']]['comments'][]=$row['kommentar'];
}
foreach($players as $id=>$data){
echo $data['navn'].':'.round($data['votes'],2).'</br>';
}

foreach($players as $id=>$data){

echo '<table><tr><th>'.$data['navn'].'</th></tr>';
foreach($data['comments'] as $comment){
echo '<tr><td>'.$comment.'</td></tr>';
}
echo '</table>';
}

} else {
?>
<form action="<?= $_SERVER['php_self'] ?>?f=stem" method="post">
Kommentar:<textarea cols="25" rows="2" name="kommentar"></textarea><br>
Valg:
<select size="7" name="Medarbejder">
<?
foreach($players as $id=>$data){
echo '<option name="stem" value="'.$id.'">'.$data['navn'].'</option>';
}
?>
</select>
<input type="submit" value="Send">
</form>
<?php
}
?>




Indlæg senest redigeret d. 07.01.2009 23:25 af Bruger #5620
et gæt ville værer noget i stil med:
Fold kodeboks ind/udKode 




Ja, det fungerer jo som standard udmærket, men muligheden for, at knytte en kommentar til sin stemme kan jeg ikke umiddelbart se, hvordan man kan få ind...



Har snust lidt omkring på nettet og faldt over noget der måske kan bruges.

Jeg har tilpasset lidt og er kommet frem til flg:

<?php
session_start();
if(!empty($_GET['f']) || !isset($_SESSION['stemt'])) {
$kom = $_POST['kommentar'];
$stem = $_POST['stem'];
mysql_connect("localhost", "xxx", "xxx");
mysql_select_db("xxx");
mysql_query("INSERT INTO stem(kommentar, stem) VALUES('$kom','$stem')");
$_SESSION['stemt'] = "jeps";
$result = mysql_query("SELECT * FROM stem ORDER BY id DESC");
$data = array();
while($row = mysql_fetch_assoc($result)) {
$kommentar = $row['kommentar'];
$stem = $row['stem'];
$arr = array("kommentar"=>$kommentar, "stem"=>$stem);
array_push($data, $arr);
$antal++;
}
$Martin P = 0;
$Carsten = 0;
$Morten C = 0;
$Brian = 0;
$Deniz = 0;
$Rasmus = 0;
foreach($data as $data1) {
if($data1['stem'] == "Martin P") $raise++;
elseif($data1['stem'] == "Carsten") $call++;
elseif($data1['stem'] == "Morten C") $fold++;
elseif($data1['stem'] == "Brian") $fold++;
elseif($data1['stem'] == "Deniz") $fold++;
elseif($data1['stem'] == "Rasmus") $fold++;
}
?>
Martin P: <?php print(round(($raise/$antal)*100,2)."%"); ?><br>
Carsten: <?php print(round(($call/$antal)*100,2)."%"); ?><br>
Morten C: <?php print(round(($fold/$antal)*100,2)."%"); ?><br>
Brian: <?php print(round(($fold/$antal)*100,2)."%"); ?><br>
Deniz: <?php print(round(($fold/$antal)*100,2)."%"); ?><br>
Rasmus: <?php print(round(($fold/$antal)*100,2)."%"); ?><br>
<table align="center" width="500" border="0">
<?php
foreach($data as $data2) {
print("<tr><td>".$data2['kommentar']."</td></tr>");
print("<tr><td>Stemt: ".$data2['stem']."<br><br></td></td>");
print("<tr><td></td></tr>");
}
?>
</table>
<?php
} else {
?>
<form action="<?= $_SERVER['php_self'] ?>?f=stem" method="post">
Kommentar:<textarea cols="25" rows="2" name="kommentar"></textarea><br>
Valg:
<select size="7" name="Medarbejder">
<option name="stem" value="Martin P">Martin P</option>
<option name="stem" value="Carsten">Carsten</option>
<option name="stem" value="Morten C">Morten C</option>
<option name="stem" value="Brian">Brian</option>
<option name="stem" value="Deniz">Deniz</option>
<option name="stem" value="Rasmus">Rasmus</option>
</select>
<input type="submit" value="Send">
</form>
<?php
}
?>

Har oprettet tabeller til både "kommentar" og "stem", men når jeg eks. gemmer ovenstående i en php-fil og forsøger at tilgå den, siger den blot, at siden ikke kan vises?



Det ser rigtig godt ud! :o

Jeg har nu fået oprettet en tabel med navnet spiller med de omtalte 2 felter.

Det virker fint med, at den gemmer kommentarerne i en tabel der hedder "stem" og at man i tabellen "spiller" kan indsætte navnet på de enkelte spillere.

Men jeg kan ikke få den til, at trække resultaterne ud på en samlet side. Dvs. eks. se:
Spiller 1 - antal stemmer: x - kommentarer:xxx
Spiller 1 - antal stemmer: x - kommentarer:yyy

Jeg prøver at trække via tabellen kommentar, men ved ikke lige, hvordan jeg skal få den til, at køre sammen med tabellen for spillere og kan ej heller finde en tabel for, hvor mange stemmer hver ID har fået?




stem i kommentar tabelled skal være samme type kolonne som id i spiller tabellen.

når du stemmer bør den så lave et række i denne med id'er på spilleren der blev stemt på og en kommentar.

og den burde også liste alle kommentarer opdelt efter spiller.



Jeg har nu prøvet alt muligt, men kan simpelthen ikke få den til, at gøre det ordentligt. Hver kommentar bliver blot gemt med en ny ID, så man kan ikke se, hvilken spillerID den skulle være tilknyttet, og derfor kan man heller ikke se, hvor mange stemmer der er kommet på den enkelte.

Har lige prøvet at tage et dump af indstillingerne for de 2 tabeller:
http://www.martinpersson.dk/databaser.jpg

Er der noget I disse som er sat forkert op?



er stem->stem = spiller->id ?

så hvis jeg stemmer på en så skriver den iden på ham jeg stemmer på ind i stem->stem



Det vil jeg tro var meningen... Det var hvert fald sådan jeg havde forstået "Nørdens" kode... :)



<< < 12 > >>
t