14. marts 2006 - 13:39Der er
40 kommentarer og 1 løsning
Pointtæller system hvordan?
(Der gives 200 point foruden dem her http://www.eksperten.dk/spm/694698) Hej. Jeg er igang med at hjælpe en ven fra en radiokanal med hans hjemmeside. Han ønsker så at få en stemmeting op. Altså der er 20 sange hvor de KUN må stemme på de 10 af dem, De skal give 10 til den de bedst kan lide, derefter 9 til den næste 8 7 6 OSV. Det ved jeg heller ikke hvordan man laver. Derefter så skal pointene tælles sammen i en fx. kim larsen får 4 point og 6 og 10 point. det skal den så selv regne ud og fx. sende resultatet til hans email. altså den skal sende til hans email fx.: kim larsen ialt 50 point, Bamses venner 24 point. osv. Hvordan kan det laves helst så ledt som over hodet muligt!
kan ikke komme ind på siden! Wicez----> Det vidste jeg ikke. Grunde var at jeg under HTML stilte samme spørgsmål og de sagde at jeg skulle oprette det her. Så udlovede jeg 60 extra da det var et spørgsmål mere.
Ikke helt. Der skal KUN ære mulighed for at stemme på 10 af 20 sange og der må kun gives 10 point til en sanger og 9 til en anden OSV. Kim larsen og bamses venner må ikke begge have fået fx. 5 point.
Jamen så er det præcis hvad jeg er ude efter! bortset fra at så skal resultat ligges sammen og fx. ligges på en side eller sendes til mail. Nemmest ville nok være at det resulatatet kan ses på en side på hjemmesiden!
Hvis resultatet skal kunne ses på hjemmesiden, hvilket er det letteste, skal du have adgang til en mysql database. Har du det?
Hvordan skal det undgåes at folk stemmer flere gange? Cookies, ip-logning eller.. ? Og skal der gemmes informationer for hver stemme, så der kan laves statistik?
Ind til videre ser koden sådan ud, men der er ikke lavet noget som opbevarer stemmerne:
if (checkdatatype($_POST['stemmerarr']) && checkvotecount($_POST['stemmerarr']) && checktotalpoints($_POST['stemmerarr']) && checkpointsgiven($_POST['stemmerarr'])) { echo "<font color='darkgreen'>Indsætter data i database..</font>"; } elseif (!checkdatatype($_POST['stemmerarr'])) { echo "<font color='darkred'>Point var ikke angivet i tal!</font>"; } elseif (!checkvotecount($_POST['stemmerarr'])) { echo "<font color='darkred'>Antal stemmer og valgmuligheder stemmer ikke overens!</font>"; } elseif (!checktotalpoints($_POST['stemmerarr'])) { echo "<font color='darkred'>Det samlede antal point og point mulige stemmer ikke overens!</font>"; } elseif (!checkpointsgiven($_POST['stemmerarr'])) { echo "<font color='darkred'>Der er ikke ".$stemmefordelingsmuligheder." kunstnere der har fået tildelt point!</font>"; } else { echo "Ukendt fejl!"; }
hold da k**T du har da forstand på det... Hehe. PUHAa! Jeg tænker IP-logging og ang. mysql så aner jeg det ikke. Kontoen er hos b-one.dk. ang. skal der gemmes informationer for hver stemme, så der kan laves statistik? så tror jeg ikke dette er nødvendigt! det skal bare være så simpelt som mouligt!
Ved du hvordan man opretter forbindelse til MySQL-databasen via PHP? Hvis ikke så se eksemplerne på http://dk2.php.net/mysql_connect . Har du styr på og adgang til phpMyAdmin - altså kan du oprette en tabel, hvis jeg giver dig tabelstrukturen?
Jeg kender INGEN ting til PHP/MySQL. Jeg arbejder kun med HTML. Jeg har adgang til PhpMyAdmin og noget MySQL også men hvordan og hvor ledes aner jeg ikke!
Der er to ting du må ændre i denne kode. 1. $stemmefordelingsmuligheder - det vil sige hvor mange stemmer man må fordele. 2. Teksten og HTML-koderne i fejlmeddelelserne og andre steder med HTML koder, eksempelvis tabellen, så den passer til resten af sidens design.
-----------------
<?php
include("connection.php");
sqlconnect();
$kunstnerQ = mysql_query("select `kunstner` from `afstemning`");
if (checkdatatype($_POST['stemmerarr']) && checkvotecount($_POST['stemmerarr']) && checktotalpoints($_POST['stemmerarr']) && checkpointsgiven($_POST['stemmerarr'])) {
foreach ($stemmerarr as $kunstner => $point) {
if ($point != "0") { mysql_query("update `afstemning` set `point` = `point` + '".$point."' where `kunstner` = '".$kunstner."'") or die(mysql_error()); }
} elseif (!checkdatatype($_POST['stemmerarr'])) { echo "<font color='darkred'>Point var ikke angivet i tal!</font>"; } elseif (!checkvotecount($_POST['stemmerarr'])) { echo "<font color='darkred'>Antal stemmer og valgmuligheder stemmer ikke overens!</font>"; } elseif (!checktotalpoints($_POST['stemmerarr'])) { echo "<font color='darkred'>Det samlede antal point og point mulige stemmer ikke overens!</font>"; } elseif (!checkpointsgiven($_POST['stemmerarr'])) { echo "<font color='darkred'>Der er ikke ".$stemmefordelingsmuligheder." kunstnere der har fået tildelt point!</font>"; } else { echo "Ukendt fejl!"; }
function sqlconnect() { $server = ""; # typisk localhost $bruger = ""; $kodeord = ""; $database = "";
if (!mysql_connect($server,$bruger,$kodeord)) { die("Couldn't connect to "$server" as "$bruger" using password "".mask($kodeord)."""); }
if (!mysql_select_db($database)) { die("Database "$database" doesn't exist!"); }
}
function sqlclose() { mysql_close(); }
?>
-----------------
Server, brugernavn, kode og database kan du højest sandsynlig se hos b-one.
-----------------
For at det hele virke skal du have en tabel i din mysql-databasen. Du opretter tabellen ved at logge ind via phpMyAdmin, trykke på SQL-ikonet i menuen til venstre og indsætte denne kode: ----------------- CREATE TABLE `afstemning` ( `id` int(3) NOT NULL auto_increment, `kunstner` varchar(70) NOT NULL, `point` int(5) NOT NULL default '0', PRIMARY KEY (`id`) ) ----------------- Bagefter skal du indsætte de kunstnere man skal kunne vælge mellem. Det gøres ved at gå ind på tabellen "afstemning" og trykke på "indsæt". Udfyld kun kunstner, evt. point hvis der skulle være en grund til det.
Når folk har stemt vil pointene blive opdatereret og pointfordelingen kan ses ved at logge ind på phpMyAdmin.
Det er HELT utroligt hvad du kan udrette med et tastatur og en computer. Det her for vildt. Men nu skal du høre, jeg kan ca. 4% af ALT det du kan vil jeg skyde på og derfor aner jeg ikke hvad jeg skal gøre. Tænkte (Hvis det ikke er til alt for meget besvær) om du kunne lave en kort set-by-step guide for ang. det du taler om fatter jeg jo ikke to potter pis (undskyld mit ordsprog). Det ville være til stor hjælp hvis du gad og havde tid. Men det er godt nok flot hvad du kan. Det må jeg sige. HELT utroligt. :D
Det kan godt være at det ser avanceret ud, men det er for det meste simple funktioner der bare fylder meget.
Men kort sagt: - Opret en fil der hedder afstemning.php eller lignende, og smid den første kode ind, som er afgrænset af bindestregerne -----------------. - Lav derefter connection.php og smid den næste kode ind, som igen er afgrænset af bindestregerne. - Udfyld $server, $bruger, $kodeord og $database i connection.php, med de informationer du har fra webhosten. - Opret en tabel med den nævnte struktur, via phpMyAdmin (som iøvrig ikke kræver kendskab til PHP/MySQL).
if (!mysql_connect($server,$bruger,$kodeord)) { die("Couldn't connect to "$server" as "$bruger" using password "".mask($kodeord)."""); }
if (!mysql_select_db($database)) { die("Database "$database" doesn't exist!"); }
Fandt også lige den her tekst inde i phpadmin. Ved ikke om det har noget at sige stod bare i bunden under ftr1_dk og ikke under afstemning: Fejl De yderligere features for at arbejde med linkede tabeller er deaktiveret. For at se hvorfor, klik her
Så skriver den inde på afstemin.php: Fatal error: Cannot redeclare mask() (previously declared in /customers/ftr1.dk/ftr1.dk/httpd.www/afstemning.php:135) in /customers/ftr1.dk/ftr1.dk/httpd.www/connection.php on line 3
if (checkdatatype($_POST['stemmerarr']) && checkvotecount($_POST['stemmerarr']) && checktotalpoints($_POST['stemmerarr']) && checkpointsgiven($_POST['stemmerarr'])) {
foreach ($stemmerarr as $kunstner => $point) {
if ($point != "0") { mysql_query("update `afstemning` set `point` = `point` + '".$point."' where `kunstner` = '".$kunstner."'") or die(mysql_error()); }
} elseif (!checkdatatype($_POST['stemmerarr'])) { echo "<font color='darkred'>Point var ikke angivet i tal!</font>"; } elseif (!checkvotecount($_POST['stemmerarr'])) { echo "<font color='darkred'>Antal stemmer og valgmuligheder stemmer ikke overens!</font>"; } elseif (!checktotalpoints($_POST['stemmerarr'])) { echo "<font color='darkred'>Det samlede antal point og point mulige stemmer ikke overens!</font>"; } elseif (!checkpointsgiven($_POST['stemmerarr'])) { echo "<font color='darkred'>Der er ikke ".$stemmefordelingsmuligheder." kunstnere der har fået tildelt point!</font>"; } else { echo "Ukendt fejl!"; }
function sqlconnect() { $server = ""; # typisk localhost $bruger = ""; $kodeord = ""; $database = "";
if (!mysql_connect($server,$bruger,$kodeord)) { die("Couldn't connect to "$server" as "$bruger" using password "".mask($kodeord)."""); }
if (!mysql_select_db($database)) { die("Database "$database" doesn't exist!"); }
}
function sqlclose() { mysql_close(); }
?> ------------------------ I min connection.php ser den sådan ud:
if (!mysql_connect($server,$bruger,$kodeord)) { die("Couldn't connect to "$server" as "$bruger" using password "".mask($kodeord)."""); }
if (!mysql_select_db($database)) { die("Database "$database" doesn't exist!"); }
if (checkdatatype($_POST['stemmerarr']) && checkvotecount($_POST['stemmerarr']) && checktotalpoints($_POST['stemmerarr']) && checkpointsgiven($_POST['stemmerarr'])) {
foreach ($stemmerarr as $kunstner => $point) {
if ($point != "0") { mysql_query("update `afstemning` set `point` = `point` + '".$point."' where `kunstner` = '".$kunstner."'") or die(mysql_error()); }
} elseif (!checkdatatype($_POST['stemmerarr'])) { echo "<font color='darkred'>Point var ikke angivet i tal!</font>"; } elseif (!checkvotecount($_POST['stemmerarr'])) { echo "<font color='darkred'>Antal stemmer og valgmuligheder stemmer ikke overens!</font>"; } elseif (!checktotalpoints($_POST['stemmerarr'])) { echo "<font color='darkred'>Det samlede antal point og point mulige stemmer ikke overens!</font>"; } elseif (!checkpointsgiven($_POST['stemmerarr'])) { echo "<font color='darkred'>Der er ikke ".$stemmefordelingsmuligheder." kunstnere der har fået tildelt point!</font>"; } else { echo "Ukendt fejl!"; }
if (!mysql_connect($server,$bruger,$kodeord)) { die("Couldn't connect to "$server" as "$bruger" using password "".mask($kodeord)."""); }
if (!mysql_select_db($database)) { die("Database "$database" doesn't exist!"); }
JAAAAAAAAAAAAA....... Det virker nu.... HIP HIP HURAAAA. Kanont flot arbejde. NU skal du have dine point. Men bare ef rent nysgerighed så hvad var der galt? Og hus at ligge et svar herinde og herinde http://www.eksperten.dk/spm/694698) Tusinde tak for hjælpen.... Michael Jørgensen
if ($point != "0") { mysql_query("update `afstemning` set `point` = `point` + '".$point."' where `kunstner` = '".$kunstner."'") or die(mysql_error()); }
} elseif (!checkdatatype($_POST['stemmerarr'])) { echo "<font color='darkred'>Point var ikke angivet i tal!</font>"; } elseif (!checkvotecount($_POST['stemmerarr'])) { echo "<font color='darkred'>Antal stemmer og valgmuligheder stemmer ikke overens!</font>"; } elseif (!checktotalpoints($_POST['stemmerarr'])) { echo "<font color='darkred'>Det samlede antal point og point mulige stemmer ikke overens!</font>"; } elseif (!checkpointsgiven($_POST['stemmerarr'])) { echo "<font color='darkred'>Der er ikke ".$stemmefordelingsmuligheder." kunstnere der har fået tildelt point!</font>"; } elseif (hasvoted()) { echo "<font color='darkred'>Du har allerede stemt!</font>"; } else { echo "Ukendt fejl!"; }
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.