2013-06-01 1 views
1

나는이 질문을 여러 번 물어 본 적이있다. 나는 웹을 검색했지만 여전히이 문제에 대한 해결책을 찾을 수 없다. 여기 PHP 변수를 사용하여 MySQL 테이블에서 항목 삭제하기

코드입니다 (나는 그것을 주입 증거가 아니라는 것을 알고) :

<?php 
$query="SELECT * FROM testimony"; 
$result=mysql_query($query); 
while($row=mysql_fetch_array($result)) 
{ 
?> 
<div> 
    <form name="testimonial" action="admintestimony.php" method="post"> 
    <table border="0"> 
    <tr> 
     <td>Username:</td> 
     <td></td> 
     <td><input type="text" name="testyname" value='<?php echo $row[0];?>' readonly></td> 
    </tr> 
    <tr> 
     <td>Testimony:</td> 
     <td></td> 
     <td><textarea name="txttesty" cols="50" rows="10" readonly><?php echo $row[1];?></textarea></td> 
    </tr> 
    <tr> 
     <td><input type="submit" name="approve" value="Approve"></td> 
     <td></td> 
     <td><input type="submit" name="reject" value="Reject"></td> 
    </tr> 
    </table> 
    </form> 
</div> 
<?php 
} 
?> 

확인 여부를 승인하거나 누르면 거부

테이블에있는 모든 항목을 표시하려면

<?php 
session_start(); 
include('connection.php'); 
$testyname=$_POST['testyname']; 
if (isset($_POST['approve'])) 
{ 
    header("location:testimonyapproved.php"); 
} 
else if (isset($_POST['reject'])) 
{ 
    header("location:reject.php"); 
} 
?> 

거부가 눌려진 경우

<?php 
session_start(); 
$testyname=$_POST['testyname']; 
include('connection.php'); 
mysql_query("SELECT * FROM testimony"); 
mysql_query("DELETE FROM 'transaction' WHERE 'transaction' 'name' = $testyname"); 
header("location:testimonyrejected.php"); 
?> 

도움을 주시면 감사하겠습니다.

+0

이것은 주사에 취약합니다. 입력을 살균하고, mysql_ * 대신에 mysqli_ * 함수를 사용한다. – wazy

답변

0

은 당신의 SQL

DELETE FROM `transaction` where `name` = $testyname 

가능성이 귀하의 SQL 잘못 포맷

+0

감사하지만 항목이 아직 남아 있지만 삭제되지 않습니다. –

0

더 나은 (잘못된 장소에서 따옴표)를 작동합니다. 개선 된 코드에 몇 가지 의견을 추가했습니다.

mysql_query("SELECT * FROM testimony"); //this line is useless and you can delete it 
mysql_query("DELETE FROM transaction WHERE name = '".$testyname."'"); //this line contained wrong syntax 

새 버전의 PHP에서는 mysql_ 기능이 지원되지 않습니다. 이 주제에 대한 자세한 내용은 this post을 확인하십시오.

또한 $testmyname 변수에 SQL 삽입을 방지 할 수 있습니다. This guide는 tat에 도움이 될 것입니다.

관련 문제