好吧,我有这个最近访问表和下面的代码,我用它来输入记录到表用户明智限制进入数据库,同时增加了新的纪录
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