我做了一个简单的聊天,我想在共有5条消息(id' s)时进行聊天将启动计时器(5秒)并清除所有行。这就是我所做的。
我有这个来检查我们是否收到了5条消息(id' s)
if($handler->lastInsertId() == 5){
clearchat_time();
}
我用了#34; lastInsertId()"因为我不知道如何调用函数来计算所有行,所以我使用这个来检查id。如果你知道如何做到这一点,这对我来说是更好的解决方案。
所以...会检查并调用它:
<script>
function clearchat_time(){
setInterval(count_chat_time, 5000);
}
function count_chat_time(){
$sql = "TRUNCATE TABLE chat";
$query = $handler->prepare($sql);
$query->execute();
}
</script>
答案 0 :(得分:0)
您的问题没有定义PHP,JavaScript或SQL的版本 - 所以我假设PHP因为问题中的美元符号(第二部分中有一些JavaScript关注“&lt; script&gt;”标记示例)和MySQL,因为这在LAMP堆栈中最常见于PHP。
以这种方式使用SQL自动插入ID可能无法移植到其他SQL可能不值得信任,因为(given the various dialects of SQL)ID不能保证始终是顺序的,也不是最新的ID是最高的。另外,如果数据库&amp;表是由其他人设置的,你不能假设增量只有一个,或者从一(1)开始。
检查表中的实际总行数可能更安全,如下所示:
$result = mysql_query("SELECT count(*) as total from chat");
$data = mysql_fetch_assoc($result);
echo $data['total'];