需要一些幫助來解決這個問題。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