Nu har jeg fået lavet en oversigt så man kan se alle stemmerne takke være mine heftige MySQLI skills
http://netkoder.dk/netkoder/ratingoversigt.phpTotal fedt.
Men hvad nu hvis jeg vil lave en row med IP adresser som har stemt. Hvordan skal jeg så gemme alle IPer og ikke kun den sidste ?
---
Så nu har jeg fundet ud af at hvordan man sender tekst tilbage fra PHP så man kan opdater ratingen på siden med Javascript uden at genindlæse siden.
Nu syntes jeg det virker rimelig godt.
Her er hovedkoden kom gerne med kommentar til forbedringer.
- if (is_numeric($rating) && $rating >= 1 && $rating <= 5) {
-
- if ($stmtb = $db->prepare("SELECT * FROM $tablenavn WHERE url=? LIMIT 1")) {
-
- $stmtb->bind_param('s', $url);
- $stmtb->execute();
- $stmtb->bind_result($xid, $xantalstemmer, $xtotal, $xgennemsnit, $xurl, $xsidsteip);
-
- if ($stmtb->fetch()) {
-
- $stmtb->close();
-
- $nygennemsnit = round(($xtotal + $rating) / ($xantalstemmer + 1), 1);
-
- // opdater data på side der er stemt på
- // opdater kun hvis IP er anderledes end sidste stemme
- if ($sidsteip != $xsidsteip) {
-
- if ($stmtc = $db->prepare("UPDATE $tablenavn SET antalstemmer=antalstemmer+1, totalrating=totalrating+?, gennemsnit=? WHERE url=? AND sidsteip=?")) {
-
- $stmtc->bind_param('idss', $rating, $nygennemsnit, $url, $sidsteip);
- $stmtc->execute();
- $stmtc->close();
-
- }else{
-
- printf("Fejl: %s\n", $db->error);
-
- }
-
- }
-
- }
-
- } else {
-
- // opret ny data på side som er stemt på for første gang
-
- if ($stmtd = $db->prepare("INSERT INTO $tablenavn (antalstemmer, totalrating, gennemsnit, url, sidsteip) VALUES ('1', ?, ?, ?, ?)")) {
-
- $stmtd->bind_param('idss', $rating, $rating, $url, $sidsteip);
- $stmtd->execute();
- $stmtd->close();
-
- }else{
-
- printf("Fejl: %s\n", $db->error);
-
- }
-
- }
-
- }
Indlæg senest redigeret d. 25.01.2013 02:39 af Bruger #13010