2010-01-20 2 views
2

나는 아직도 초보자입니다. 그래서 내 사이트에는 사용자가 보낸 메시지를 삭제할 수있는 메시징 시스템이 있습니다. 내가 '보낸'상자에서 내 메시지를 지우면받는 사람의받은 편지함에서 메시지가 지워진다는 사실이 발견되었습니다. 내가 보낸 메일에서 '모든 메일 지우기'와 하나씩 메일을 삭제하는 두 가지 방법이 있습니다. 여기 보낸 메일 삭제 기능에

function deleteAll() { 
    var answer = confirm('Are you sure you want to delete all of your messages?'); 
    if(answer){ 
     return true; 
    }else{ 
     return false; 
    } 
} 

if(isset($_POST['subEraseAll'])){ 

    $query = "UPDATE `Messages` SET `status` = 'dead' WHERE `sentFrom` = '".$auth->id."'"; 
    mysql_query($query,$connection) or die(mysql_error()); 

    <div class="EraseAll"> 
            <form name="EraseAll" action="SentMail.php" method="post" onsubmit="return deleteAll();"> 
            <input type="submit" name="subEraseAll" value="Erase All Messages" /> 
            </form> 
            </div> 

가 deleteConfirmPage을 통해 하나의 메시지 하나를 삭제하는 코드입니다 : 여기

이 삭제에 대한 내 코드 전부입니다 그래서

$message = $_GET['id']; 

    $query = "SELECT * FROM `Messages` WHERE `id` = '" . $message . "'"; 
    $request = mysql_query($query,$connection); 
    $result = mysql_fetch_array($request); 

    $toUser = $result['sentTo']; 
    $fromUser = $result['sentFrom']; 

    if($auth->id !=$fromUser) { 
     header("Location: index.php"); 
     exit; 
    } 

    $query = "UPDATE `Messages` SET `status` = 'dead' WHERE `id` = '".$message."' LIMIT 1"; 
    $request = mysql_query($query,$connection); 

, 어떻게에서 내 쿼리를 중지합니까 내가 보낸 편지함에서 보낸 편지함을받는 사람의받은 편지함에서 지울 수 있습니까?

+0

그리고 질문은 ...? –

+0

내가 틀렸다고 정정 해 주지만 올바른 태그를 사용하지 않고 js와 PHP를 결합하는 것처럼 보입니까? –

+0

그것들은 분리되어 있습니다, 나는 방금 사용하고있는 것을 볼 수 있도록 여러 지점에서 주요 구성 요소의 조각과 조각들을 잘게 자른 것입니다. –

답변

2

이렇게하려면 테이블의 구조를 일부 변경하거나 '상태'열의 사용 방식을 변경해야 할 수 있습니다. 여기

는 테이블 구조의 변경을 제안 잠재적 인 솔루션이지만, 자세한 내용없이 작동 (또는 관련) 것입니다 있는지 확실하지 않을 수 있습니다


지금 귀하의 메시지 테이블은 '상태' 열만 있으면 실제로 필요한 것은 '상태 보낸 사람' 열이고 추가로 '상태 수신자' 열입니다.

송신자는 메시지 '죽은'에 '상태 발신자 값을 설정하고, 수신기가 삭제 될 때 메시지

이 때 수단'죽은 '에'상태 수신기 셋트 삭제하면 당신이 폴더를 보낸 사용자의 메시지를 표시 할 때 당신이 사용자의 메시지는 당신이 = '살아''상태 리시버'에 대한를 조회 할 필요가를받은 편지함에 표시되고, 당신은 '상태 발신자를 조회 할 필요가 '='살아있다 '.


참고 :이 디자인은 단일 사용자가 여러 수신자에게 메시지를 보내는 시나리오에 대한 좋은 징조하지 않습니다.

+0

은 많은 의미를 갖습니다. 나는 그것이 그 자연에 대한 것이었지만 무엇이 확실하지 않은 것을 알았다. 고맙습니다! –

+0

문제 없음 :-). –

관련 문제