【发布时间】:2017-06-26 00:38:57
【问题描述】:
在我的网站(使用 CMS eFiction)上,如果用户没有将记录在表格中的章节评分为 -1,则用户可以对第 1-10 章的章节评分。我想防止用户留下多个评分。我的 PHP 知识非常有限,我认为代码应该在 review.php (on github here) 中的第 144 行之前进行
dbquery("INSERT INTO ".TABLEPREFIX."fanfiction_reviews (item, type, reviewer, review, rating, date, uid, chapid) VALUES ('$item', 'ST', '$reviewer', '$review', '$rating', now(), '".(USERUID && isNumber(USERUID) ? USERUID : 0)."', '$chapid')");
我正在尝试为 fanfiction_reviews 表编写查询,如果找到与 uid(用户)和 chapid 匹配且具有评级的条目,则向他们抛出一条错误消息,表明他们已经对该章节进行了评级。 ETA:要回答下面的问题,我希望忽略或不记录第二个评级,而不是替换以前的评级。
正如我所提到的,我的 PHP 是有限的,我只是尝试模仿我在 eFiction 其他地方找到的内容。编辑:在下面最初更改了useruid = '$uid',这给了我一个致命的mysql错误。我将其更改为uid = '$uid' 并停止了错误
$ratecount = dbquery("select count(rating) as count FROM ".TABLEPREFIX."fanfiction_reviews WHERE item = '$item' AND chapid = '$chapid' AND uid = '$uid' AND rating != '-1'");
if($ratecount != 0) $output .= write_error(_MULTIPLERATINGS);
将上述内容粘贴到文件中后,它确实给了我“多重评级错误”消息,但它仍在记录评级。如何让它不记录评级(或将其更改为非-1评级)
提前感谢您的帮助!
【问题讨论】:
-
为了其他人在回答时,如果用户尝试多次评分,您能否指定您想要发生的事情。第二个评级应该取代第一个评级还是被忽略?
-
为什么要记录
-1,只是不要写,如果没有记录显示在应用程序端显示您为-1显示的内容。之后,您可以根据需要在列上设置唯一键(类似于唯一的(用户 ID、章节、书籍 ID))。 -
欢迎来到 Stack Overflow!不要被 cmets 气馁。你的第一个问题很好,很快就会很好。
-
@chris85 这就是 eFiction 软件的设置方式,如果用户不给章节评分,评分会记录为 (-1),我不确定我将如何开始更改那。每个评论/评分都会在 reveiwid 列下使用唯一 ID 记录
标签: php mysql templatepower