仅从db一次向用户显示记录

时间:2015-04-29 11:43:51

标签: php mysql cookies mysqli

我想只向用户显示一条新记录。我知道它可以通过使用cookie来实现,但在这种情况下如何使用它? 我的所有记录都是$ row。

$con = mysqli_connect("localhost", "root", "", "dentistf_new_df");

if(mysqli_connect_errno()) {
    echo "Failed to connect to MySQL: ".mysqli_connect_error();
}

$query = mysqli_query($con, "SELECT * FROM wp_blog_posts order by ID desc ");



while($row = $query->fetch_assoc()) {


    if(in_array($row['ID'], $_COOKIE['blog_id _status'])) {
        do nothing...
    } else {
        echo $row['ID'];
        setcookie('blog_id _status', $row['ID']);
    }
}

2 个答案:

答案 0 :(得分:0)

当您在一个页面上使用setcookie()将数据设置为Cookie时,您可以在第二页执行此操作:

if(isset($_COOKIE['mydata'])) {
    echo $_COOKIE['mydata'];
    setcookie("mydata", "", time()-(60*60*24), "/"); // unsets cookie
}

请勿使用$_COOKIE['blog_id _status'] = '';为您的Cookie设置值。

答案 1 :(得分:0)

Cookie不在您的控制之内;用户可以随时删除它们,此时您将再次显示它们之前看到的记录。

如果不了解有关数据的更多详细信息,很难提供准确的解决方案,但我建议在数据库中进行录制,这是特定用户所看到的记录。
根据您的数据,您可以实现此目的,例如通过为每条记录添加时间戳并存储" last_timestamp_shown"对于单独表中的每个用户。然后,您必须将SELECT语句扩展为仅包含时间戳比" last_timestamp_shown"更新的记录。对于这个特定的用户。