2013-02-21 65 views
0

我一直在測試我的SQL在phpmyadmin,我知道SQL工作正常,但當我通過表單按鈕調用它時,它什麼都不做。任何人都可以告訴我我做錯了什麼。使用PHP更新MySQL記錄 - SQL的作品,PHP方面不

這是在主窗體頁面中的PHP:

<?php 
    echo 
    "<table border='1'> 
    <tr> 
<th>Firstname</th> 
<th>Lastname</th> 
<th>Age</th> 
<th>Hometown</th> 
<th>Job</th> 
<th>health</th> 
<th>damage</th> 
</tr>"; 

while($row = mysql_fetch_row($result)) { 

    echo '<tr>'; 
    foreach($row as $cell) { 

     echo "\n<td>$cell</td>"; 
    } 

    echo '<td><form method="POST" action="attack.php"> 
    <input name="update" type="button" value="Update Record" /> 
    <input type="hidden" name="'.$row[1].'" /></form></td></tr>'; 
    echo "\n\n"; 
    echo "test"; 

} 
?> 

<?php 
require_once('config.php'); 

$sqltest = $sqltest - 5; 
    $id = floor($_GET['id']); 

if($id > 0) 
{ 
$sql1="UPDATE ajax_demo SET Health = Health - Damage"; 
$result=mysql_query($sql1); 
mysql_close(); 
} 
?> 

obvisouly我想補充的可變因素NITO SQL字符串但是出於測試目的,我離開了它本身。如果任何人都可以提供幫助,那麼它將會受到很大的困擾。

+1

$ SQL1 = 「UPDATE ajax_demo SET健康=健康 - 傷害'」; 改變這一點。 – Dgo 2013-02-21 11:15:07

+0

1)當你用HTML注入時,你不會轉義數值。 2)你不檢查'mysql_query()'是否成功。 3)您正在使用已棄用的擴展名。 – 2013-02-21 11:18:55

+0

ÁlvaroG. Vicario可以延長這些點嗎? – user1284386 2013-02-21 11:31:16

回答

0

使用此查詢

$sql1="UPDATE ajax_demo SET `Health` = `Health` - `Damage`"; // it will set the actual computed value. 

如果使用

`Health` = 'Health - Damage' // it will set text Health - Damage not the computed value 
+0

啊非常感謝,這已經改變。還有什麼其他原因會導致現在不行? – user1284386 2013-02-21 11:31:43

+0

@ user1284386嘗試我的代碼,它工作正常。我測試過了。 – 2013-02-21 11:32:45

+0

感謝您的快速回復,您是否通過像我這樣的表單調用它?所以在BTN點擊action = attack.php? – user1284386 2013-02-21 11:38:09