私のサイト(CMS eFictionを使用しています)では、ログインした章を評価しない場合、1〜10の章で評価を付けることができますテーブルを-1とします。私はユーザーが複数のレーティングを残さないようにしたい。私のPHPの知識は非常に限られて、私はPHP/MySQL(eFiction)単一ユーザによる複数の評価の防止
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')");
(on github here)コードがreview.phpにライン144の前に行くべきと考えている私はfanfiction_reviewsテーブルのと一致したエントリを見つけた場合、クエリを記述しようとしていますuid(user)とchapidを持っていて、評価を受けている場合は、すでに章を評価しているというエラーメッセージが表示されます。 ETA:以下の質問に答えるには、以前の評価を置き換えるのではなく、2番目の評価を無視するか、記録しないようにします。
私が言及したように、私のPHPは限られています、私はeFictionのどこか他の場所にあるものを模倣しようとしています。編集:私は致命的なMySQLのエラーを与えていたuseruid = '$uid'
が最初に変更されました。私は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以外のものに変更する)
ありがとうございました!
回答するときは、ユーザーが複数回料金を試行した場合に何をしたいかを指定できますか。 2番目のレーティングが最初のものに取って代わるべきか無視されるべきか? –
なぜ '-1'をログに記録するのか、' -1'のために何を表示するのかを記録していなければ、アプリケーション側では書かないでください。その後、必要に応じてユニークなキー(ユーザID、チャプター、ブックIDなど)をカラムに設定することができます。 – chris85
ようこそスタックオーバーフロー!コメントによって落胆しないでください。あなたのものは良い最初の質問であり、すぐに非常に良いものになります。 –