好吧,我有這個最近訪問表和下面的代碼,我用它來輸入記錄到表用戶明智限制進入數據庫,同時增加了新的紀錄
if($user->is_logged_in()){
$postid = $row['postid'];
$uid = $_SESSION['memberid'];
$stmt = "SELECT * FROM recent WHERE postid = :postid AND memberid = :memberid";
$stmt = $db->prepare($stmt);
$stmt->bindParam(':postid', $postid, PDO::PARAM_STR);
$stmt->bindParam(':memberid', $uid, PDO::PARAM_STR);
$stmt->execute();
$recentCount = $stmt->rowCount();
if(!$recentCount)){
$stmt = $db->prepare('INSERT INTO recent (postid,memberid) VALUES (:postid,:memberid)');
$stmt->execute(array(
':postid' => $postid,
':memberid' => $uid
));
}
}
但事情是我希望限制記載,在每個用戶中只有50個記錄應該在db中。假設用戶訪問一個新的主題,那麼如果用戶在最近的表中已經有50條記錄,那麼數字50被刪除,49條記錄變成50.我希望你明白我的觀點?
它只是每個用戶的記錄不應超過50以上是我的意思。
檢查$ recentCount是否小於50,如果不是,刪除最舊的行。然後繼續並插入 – ADyson
是的刪除查詢會是什麼樣子?刪除最舊的行 – lalthung
我假設postid是一個自動增量值,這意味着最低值將是最老的。因此,可能類似於'DELETE FROM recent where postid =(SELECT min(postid)from recent where memberid =:memberid)'如果postid不是自動生成的,那麼也許你有一個可以使用的日期字段(創建日期或其他)? – ADyson