2011-09-18 9 views
0

사용자가 로그 아웃하면 기본적으로 테이블에서 행의 ID 코드가 포함 된 모든 데이터가 삭제됩니다.테이블 이름에서 삭제가 변수로 저장 되나요?

$idcode = $_SESSION['idcode']; 
$idicao = $_SESSION['idicao']; 

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

$sql = "DELETE FROM $idicao WHERE idcode=".$idcode.""; 

mysql_query($sql); 

} 


session_unset(); 
session_destroy(); 

mysql_close($dbid); 

header("Location: login.php"); 

?> 

변수가 페이지에 올바르게 표시되고 session_start가 맨 위에 표시됩니다. 유일한 문제점은 테이블의 레코드가 삭제되지 않는다는 것입니다.

+1

모든 변수 .. $ _POST를 포함 않습니다 제대로 에코 말한다 ['로그 아웃'] ? – Gryphius

+0

echo $ sql 결과를 표시하십시오. –

+0

$ sql을 echoing하면 다음과 같은 결과가 나옵니다. idcode = test – Thatfuzzbean

답변

1

당신은 SQL 변수 출력이 있음을 말하고있다 : 테스트는 어디에서 삭제 IDCODE = 시험

테스트는 다음과 같이 작은 따옴표에 있어야합니다 :

$sql = "DELETE FROM ".$idicao." WHERE idcode='".$idcode."'"; 
+0

정말 고마워요. : D – Thatfuzzbean

2

변경이 라인 :
$sql = "DELETE FROM $idicao WHERE idcode=".$idcode."";

$sql = "DELETE FROM ".$idicao." WHERE idcode=".$idcode.";

당신이 잘되어야합니다

+0

$ sql이 나를 테스트하여 어디에서 테스트했는지 idcode = test라는 테스트 결과가 출력됩니다. 그러나 그것은 통과하지 않습니다 – Thatfuzzbean

+0

삭제할 테이블의 이름은 무엇입니까? 그리고 열 이름은 무엇입니까? – MWard

2

갈이 시도 :

$idicao='yourtablename'; 
$sql = 'DELETE FROM '.$idicao.' WHERE idcode='.$idcode; 
관련 문제