нормально у меня есть этот недавний стол визитов и следующий код я использую для ввода записей в таблице пользователей мудройпредел входа в БД времени добавлены новые записи
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, где postid = (SELECT min (postid) из последнего, где memberid =: memberid)' Если postid не создается автоматически, возможно, у вас есть поле даты, которое вы можете использовать (дата создания или что-то еще)? – ADyson