尝试使用php文件从数据库中删除表

时间:2013-06-21 08:52:05

标签: php javascript localhost

我在数据库mshop2中有一个名为userdb的表。它有列:

  • 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与我输入的相同ID中的匹配行将不会被删除。

我的代码出了什么问题?

3 个答案:

答案 0 :(得分:1)

更改: -

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

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

您正在捕获变量$ id中的值,并在sql语句中使用$ uid,这就是它无效的原因。

答案 1 :(得分:1)

jq中的

是发布uid。

将帖子改为

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

答案 2 :(得分:0)

你有一个混乱的变量,这让你感到困惑。

在您的脚本代码中,您传递了uid,其值为userid 并且您在deleteUser.php

中访问了错误的变量

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

更改为mysql_real_escape_string($_POST['uid']);

在您的查询中,只需将变量$uid更改为$id

即可

只需使用与您在脚本中传递的内容类似的变量,这样您就不会很难看到常见错误

EDIT ::: 试试这个 删除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'";

希望它有所帮助。