2013-06-21 55 views
-2

我在數據庫mshop2中有一個名爲userdb的表。它具有列:試圖用php文件從數據庫中刪除表

  • ID
  • 用戶名
  • 密碼
  • 電子郵件

與存儲在其中的所有功能,我的js文件名爲mshop2.script,其中我deleteUser函數也被存儲,它會跳轉到一個名爲deleteUser.php的文件。

php文件,我想上運行的代碼是admin.php的和它有這些寫在上面:

<font color="white">Deletion - ID</font> 
<input class="test1" type="text" id="txUserid" value=""> 
<input class="test2" name="Submit" type="submit" value="" id="submit" 
     onClick='deleteUser();txUserid.value="";'/> 

的「輸入類的話只是要匹配的圖像文件夾,根據我的CSS文件來顯示我想讓代碼在單擊時運行的圖像,所以不介意。 我已經包含在我的PHP文件的頭幾行:

<script src='jquery.js'></script> 
<script src='mshop2.script.js'></script> 

我寫這在我的mshop2.script.js文件:

function deleteUser(){ 
    var userid = $('#txUserid').val(); 
    var finalData = { 
     uid: userid 
    }; 

    $.post('deleteUser.php', finalData, function(resp){ 
     if(resp == 'success'){ 
      alert('User successfully deleted.'); 
      getUserList(); 
     } 
    }); 
} 

這是我deleteUser的內容PHP文件:

<?php 
    include 'config.php'; 

    $id = mysql_real_escape_string($_POST["userid"]); 
    $q = "DELETE FROM userdb WHERE ID = '$uid'"; 

    if(!mysql_query($q, $con)){ 
     die('Error: ' . mysql_error()); 
     echo mysql_error(); 
    }else{ 
     echo 'success'; 
    } 

    mysql_close($con); 
?> 

什麼也沒有發生,如果我輸入「1」插入文本框或從1到5的匹配線在我的表,我輸入了相同的ID的任意數量的數據庫不會得到de leted。

我的代碼有什麼問題?

+0

[**請不要在新代碼'mysql_ *'功能**](http://bit.ly/phpmsql)。他們不再被維護[並被正式棄用](https://wiki.php.net/rfc/mysql_deprecation)。看到[**紅框**](http://j.mp/Te9zIL)?學習[*準備的語句*](http://j.mp/T9hLWi),並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [這篇文章](http://j.mp/QEx8IB)將幫助你決定哪個。如果你選擇PDO,[這裏是一個很好的教程](http://www.brightmeup.info/article.php?a_id=2)。 – Fracsi

回答

0

你有一個混亂的變量,並混淆你。

在你的腳本代碼,你已通過uiduserid 一個值,你在你的deleteUser.php

而不是mysql_real_escape_string($_POST['userid']);

變化mysql_real_escape_string($_POST['uid']);

而在你的查詢訪問一個錯誤的變量,只需將變量$uid更改爲$id

只需使用AA類似變量什麼都得你在你的腳本傳遞,這樣就不會虧待你的一部分,看看常見的錯誤

編輯::: 試試這個 你的HTML代碼中刪除onclick事件

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 

<script> 
    $(document).ready(function() { 
      $(".test2").click(function() { 
       var id = $("#tsUserid").val(); 
       $.post("deletUser.php", { id: id }, function(data) { 
        alert(data); 
       }); 
      }); 
    }); 
</script> 

你的PHP將是您deleteUser.php,只是

變化mysql_real_escape_string($_POST['userid']);

mysql_real_escape_string($_POST['id']);

和您的查詢 $q = "DELETE FROM userdb WHERE ID = '$id'";

希望它能幫助。

+0

做到了這一點,什麼都沒有發生:( –

+0

嘗試我編輯過的,因爲我知道你也傳遞給你的函數一個空值 –

+0

哇哇它的工作!!謝謝!請你請給我解釋:D我真的很想知道你在那裏做了什麼:D還有,我還有其他兩個按鈕,這些按鈕是更新和添加新用戶的,它會給出'成功'的信息,無論我點擊了哪個按鈕,就好像我添加新按鈕產生了「用戶成功添加」的消息,deleteUser的'success'消息將會出現在後臺:/並且即使我在文本框中輸入了刪除的ID,它仍然會說'成功' –

1

更改此設置: -

$q = "DELETE FROM userdb WHERE ID = '$uid'"; 

$q = "DELETE FROM userdb WHERE ID = '$id'"; 

您正趕上在$ id變量的值,並在SQL語句中這是它不工作的原因使用$ UID。

+0

仍然無法使用。我改變了: - $ q =「DELETE FROM userdb WHERE ID ='$ uid'」;到$ q =「DELETE FROM userdb WHERE ID ='$ id'」;並沒有發生任何事情,另外,我試圖改變var finalData = { uid:userid }; into var finalData = { id:userid };並沒有發生任何事 –

1

in jq in posting uid。

變化後到

$uid = mysql_real_escape_string($_POST["uid"]);