-1

私は、ユーザーが「好き」または「嫌い」なものを「好き」または「嫌い」にできる評価システムを構築しています。MySQLの更新ですべてが正常に機能します。問題は、ユーザーが一度だけ「いいね」または「嫌い」になるように制限を追加したいということです。基本的に、ブール値でそれを実行したいのですが、コードを正しく記述できません。誰かがブール値を手伝ってくれますか?コードは次のとおりです。

<?php
$tries=0;
if (((isset($_POST['hidden']))&&$tries<2) {
    $tries++;
    $likes++;
    $up = mysql_query("Update videos SET Likes='$likes' WHERE Name='$name'");
}
?>

この情報で十分であることを願っています。

4

2 に答える 2

1

これは、何を達成しようとしているのかを教えてくれる答えです。今いる場所からここまでのコードを書くつもりはありません。しかし、それはあなたが良い考えを得るのに役立つはずだと私は信じています.

likesまず、次の構造のテーブルがあるとします。

user_id INT(11) NOT NULL
video_id INT(11) NOT NULL
PRIMARY KEY(user_id, video_id)

次に、コードで次のことができます (関数の使用を容認しないため、この例では PDO を使用していmysql_*ます)。

$statement = $pdo->prepare('INSERT INTO likes (user_id, video_id) VALUES (:user_id, :video_id)');
$statement->bindValue(':user_id', $userId);
$statement->bindValue(':video_id', $videoId);

try {
    // The idea is that, if the user/video combination already exists - the above
    // query will throw an exception so you won't execute the code below this line
    $statement->execute();

    $likes = $pdo->prepare('UPDATE video SET likes = likes + 1 WHERE video_id = :video_id');
    $likes->bindValue(':video_id', $videoId);
    $likes->execute();
} catch (PDOException $exception) {
    // if it was a duplicate key exception, then the likes on the video 
    // have not been updated and you can print a friendly error message to your
    // users here
}
于 2013-03-12T15:29:19.950 に答える
0

ユーザーにいくつかのデータポイントを保存し、PHPセッション、Cookie、および/またはその他の方法を使用して、データポイントによって「ユーザーを知る」必要があるため、ユーザーが戻ったときにそこにいたことを知ることができます。

戻ってきたユーザーをどれだけ覚えておきたいかによって、取るべき行動が決まります。

于 2013-03-12T15:25:40.723 に答える