2013-05-15 45 views
0

我有以下代碼從我的數據庫中檢索項目,並將它們顯示在表格中。該文件是manage-products.php。錯誤從數據庫中刪除項目使用確認框

while($row = mysql_fetch_row($result)){ 
     echo '</tr>'; 
     echo ' <td class="product"><a href="manage-products-2.php">'.$row[1].'</a></td>'; 
     echo'<td class="quantity">'.$row[5].'</td>'; 
     echo '<td class="item_price">'.$row[4].'</td>'; 
     echo '<td class="item_total">'.$row[6].'</td>'; 
     echo '<td class="item_unsold"><a href = "manage-products.php?prod = '.$row[0].'" style="color:red">Delete</a></td>';//to delete an item 
     echo '</tr>'; 
} 

我有下面的代碼(應執行)當刪除鏈接被點擊(也管理-products.php)

$prodid = $_GET['prod']; 

if($prodid != ""){ 
    echo '<script type="text/javascript"> 
    var r = window.confirm("Are you sure you want to delete this product") ; 
    if(r == true){ 
    $ . post ("manage-products.php" , { result : r }); 
    } 
    </script>'; 
    $delete = $_POST['result']; 
    if($delete == true){ 
    $SQL1 = "DELETE FROM tbl_product WHERE id = '$prodid'"; 
    $result1 = mysql_query($SQL1); 
    } 
} 

當我點擊刪除它說未定義指數:PROD 。請問我的錯誤在哪裏。謝謝

+0

什麼'print_r($ _ GET);'display? – RelevantUsername

+0

您需要更好地理解服務器端和客戶端。 –

+0

請不要直接在SQL查詢中使用用戶提供的數據,而不使用某種轉義功能,理想情況下,您甚至不應該再使用mysql_ *函數,但如果必須,至少要確保使用mysql_real_escape_string() $ prodid在你的查詢中 – Anigel

回答

0

重新加載前請確認並在重新加載過程中刪除產品,如果發生這種情況,您會更高效。

像這樣的刪除鏈接:

echo '<td class="item_unsold"><a href = "manage-products.php?prod='.$row[0].'" style="color:red" onclick="return confirm('Are you sure you want to delete this product ?')">Delete</a></td>';//to delete an item 

那麼當重裝:

$prodid = $_GET['prod']; 

if($prodid != "" && is_numeric($prodid)){ 
    $SQL1 = "DELETE FROM tbl_product WHERE id = '$prodid'"; 
    $result1 = mysql_query($SQL1); 
    } 
} 

不要忘了消毒變量(檢查數值型)之前將其刪除;)

編輯:

替換manage-products.php?prod = '.$row[0] by manage-products.php?prod='.$row[0]

+0

謝謝,但它仍然沒有像以前一樣。它只是打印未定義的索引:prod。 – dhani

+0

print_r($ row)並查看0索引中包含的內容 – Pouki

+0

刪除被調用url中的空間,我編輯了我的帖子...重試並且它應該有效 – Pouki

相關問題