需要一些帮助来解决这个问题。PHP/MYSQL sql选择
我的功能:
function cleanDatabase()
{
$allowedTime = $this->time - 10;
$query = mysql_query("SELECT * FROM `chatsessions` WHERE `last_active` < ".$allowedTime." AND `public` = 0");
if(mysql_num_rows($query) > 0){
while($row = mysql_fetch_array($query)){
//move messages to history for evrey cID
$query2 = mysql_query(" SELECT * FROM `messages`, `chatsessions`
WHERE messages.cID = ".$row['cID']."
AND chatsessions.cID = messages.cID
AND chatsessions.public = 0");
if(mysql_num_rows($query2) > 0){
while($row2 = mysql_fetch_array($query2)){
$insert = mysql_query("INSERT INTO `message_history` (`cID`, `mID`, `user_id`, `sender`, `sendtime`, `message`) VALUES
(".$row2['cID'].", ".$row2['mID'].", ".$row2['user_id'].", '".$row2['sender']."', ".$row2['sendtime'].", '".$row2['message']."')");
if($insert)
$delete = mysql_query("DELETE FROM `messages` WHERE `cID` = ".$row2['cID']);
if(!$delete)
return false;
}
}
$query3 = mysql_query("DELETE FROM `chatsessions` WHERE `cID` = ".$row['cID']." AND public = 0");
}
}
}
功能并
选择非有效的聊天是不公开1
从选择的聊天获取信息
插入邮件到历史记录
个如果插入删除旧邮件
- 什么不要有
删除聊天会话公共= 1
它所需要做的:
选择非有效聊天的不public 1
当上次选择来自cID的消息时如果插入删除旧邮件
删除聊天记录什么不要有公开争吵与CID被删除(公共行不会得到去除,这些消息应该总是停留)
消息插入到历史
= 1
问题是有在chatsession多个行具有相同的CID(一个用于每个用户,并用pulbic = 1永久) 我不懂得如果没有与该ID具有公共= 1
编辑chatsession不删除邮件:它应该如何工作
通过增加一个计数与非有效聊天ID总聊天,如果非有效聊天等于总聊天消息去历史解决了这个问题。 – MakuraYami 2012-03-08 14:27:11