webForumDet fria alternativet

Problem med röstning/betyg

1 svar · 471 visningar · startad av Guldstrand

GuldstrandMedlem sedan juli 20041 271 inlägg
#1

Försöker ordna en "röstning" till ett artikelscript, men det fungerar inte riktigt som det ska.

artikel.php

<?php 

$id = $_GET["id"];

if (!isset($id))
print("Ogiltigt ID."); 

$sql = "SELECT * FROM artiklar WHERE id = '$id'";
$result = mysql_query($sql);

while($rad = mysql_fetch_array($result))
{
$titel = $rad["titel"];
$text = $rad["text"];
$datum = $rad["datum"];
$medlem = $rad["medlem"]; 
$numratings = $rad["numratings"]; 
$ratingsum = $rad["ratingsum"];

if ($numratings != 0)
$betyg =  ROUND($ratingsum / $numratings, 1);
$rpic = ratingpic($betyg);

// HÄMTA NAMN - START
$res2 = mysql_query("SELECT user, kon FROM members WHERE id=$rad[medlem] LIMIT 1");
if (mysql_num_rows($res2) == 1)
{
$arr2 = mysql_fetch_assoc($res2);
$medlem2 = "$arr2[user]";
$kon = "$arr2[kon]";
}
// HÄMTA NAMN - SLUT

echo "Postad av: <a href=#>$medlem2</a> ($kon)<br/>Datum: $datum<br/><hr><strong>$titel</strong><br/>" .nl2br($text). "<br/><br/>"; 
}
?>

<form name="jump_to_rate">
<select name="rate_me" OnChange="location.href=jump_to_rate.rate_me.options[selectedIndex].value">
     <option selected> Rösta på artikel! 
     <option value="sidor/spara_betyg.php?id=<?=$id?>&rate_me=5">5- the best!
     <option value="sidor/spara_betyg.php?id=<?=$id?>&rate_me=4">4- great
     <option value="sidor/spara_betyg.php?id=<?=$id?>&rate_me=3">3- fair
     <option value="sidor/spara_betyg.php?id=<?=$id?>&rate_me=2">2- bad
     <option value="sidor/spara_betyg.php?id=<?=$id?>&rate_me=1">1- stinks
</select> <b>Betyg:</b> <?=$rpic?></form>

spara_betyg.php

<?php 
ob_start(); 

include('../conn.php');
//=== ratings
if ($_GET["rate_me"]){

if ($_GET["rate_me"])
$rate_me = (int)$_GET['rate_me'];
if ($rate_me <= 0 || $rate_me > 5)
echo "invalid rating number";

$id = $_GET["id"];

if (!isset($id))
print("Ogiltigt ID.");

$res = mysql_query("SELECT artikel, medlem FROM betyg WHERE artikel = $id AND medlem = $_SESSION[sess_id]");
$row = mysql_fetch_array($res);
if ($row[artikel] >= 1) 
echo "Du har redan röstat på denna artikel.";
if ($row[artikel] == 0) 
$res = mysql_query("UPDATE betyg SET betyg = $rate_me WHERE artikel = $id AND medlem = $_SESSION[sess_id]");
if ($row)
$res = mysql_query("INSERT INTO betyg (artikel, medlem, betyg, datum) VALUES ($id, " . $_SESSION['sess_id'] . ", $rate_me, NOW())");
mysql_query("UPDATE artiklar SET numratings = numratings + 1, ratingsum = ratingsum + $rate_me WHERE id = $id");

$refererto = str_replace ('&amp;', '&', htmlentities($_SERVER["HTTP_REFERER"]));
$referer = ($_SERVER["HTTP_REFERER"] ? $refererto : "../show.php?page=artikel&id=$id");
header("Refresh: 0; url=$referer");
die;
} 
?>

"numratings" och "ratingsum" i tabellen "artiklar", fungerar som det ska.
Dock så sparas inga värden i tabellen "betyg".

CREATE TABLE `betyg` (
  `artikel` int(10) unsigned NOT NULL default '0',
  `medlem` int(10) unsigned NOT NULL default '0',
  `betyg` tinyint(3) unsigned NOT NULL default '0',
  `datum` datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (`artikel`,`medlem`),
  KEY `medlem` (`medlem`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Tacksam ifall någon kunde hjälpa mig med detta. :r

FuelMedlem sedan okt. 20001 285 inlägg
#2

En UPDATE .. men om ingen har röstat på en artikel så finns det väl inget att uppdatera ?

340 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
336 ms — hämta tråd, inlägg och bilagor (db)