簡體   English   中英

PHP / MySQL(eFiction)防止單個用戶進行多個評級

[英]PHP/MySQL (eFiction) Preventing Multiple Ratings from single user

在我的網站(使用CMS eFiction )上,如果用戶未將評論在表上記錄的章節的評分為-1,則其評分為1-10。 我想防止用戶留下多個評分。 我的PHP知識非常有限,我認為代碼應該在review.php中的144行之前( 在github上

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)的信息

在此先感謝您的幫助!

嘗試if($ratecount.count != 0) $output .= write_error(_MULTIPLERATINGS); 也可能需要格式化它, if($ratecount["count"] != 0) $output .= write_error(_MULTIPLERATINGS);

作為另一種偶然性,您可能需要遍歷結果集,或在其中放置[0]以表示您要訪問結果集中第一行的“ count”字段。 您的里程可能會有所不同,具體取決於dbquery()的功能。 請記住,在php中有許多不同的方法可以連接到數據庫並與之交互,並且不同的實現可能以不同的方式返回結果,並且可能遵循略有不同的約定。 AFAIK,dbquery()不是php中的標准函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM