【问题标题】:Trying to delete a table from a database with a php file [closed]尝试使用 php 文件从数据库中删除表 [关闭]
【发布时间】:2013-06-21 08:52:04
【问题描述】:

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

  • 身份证
  • 姓名
  • 用户名
  • 密码
  • 电子邮件

我的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 的匹配行将不会被删除。

我的代码有什么问题?

【问题讨论】:

标签: php javascript localhost


【解决方案1】:

改变这个:-

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

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

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

【讨论】:

  • 仍然无法正常工作。我改变了:- $q = "DELETE FROM userdb WHERE ID = '$uid'";进入 $q = "从 userdb 中删除 ID = '$id'";什么也没发生,我也试图改变 var finalData = { uid: userid };进入 var finalData = { id: userid };什么也没发生
【解决方案2】:

在 jq 中正在发布 uid。

把帖子改成

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

【讨论】:

    【解决方案3】:

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

    在您的脚本代码中,您传递了uid,其值为userid 你在deleteUser.php中访问了错误的变量

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

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

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

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

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

    希望对你有帮助。

    【讨论】:

    • 做到了,但什么也没发生 :(
    • 试试我编辑的内容,因为我知道你也在向你的函数传递一个空值。
    • 哦,哇!成功了!谢谢!你能解释一下你在那里做了什么吗?:D我真的很想了解你在那里做了什么:D而且,我还有另外两个按钮,它们是更新和添加新用户,它会给无论我单击哪个按钮,该“成功”消息,例如如果我的添加新按钮产生“用户成功添加”消息,则来自 deleteUser 的“成功”消息将在后台出现:/ 即使我输入已删除的 ID在文本框中仍然会显示“成功”
    • 如果它有效,那么绿色检查怎么样。我不能逐条解释你,但你可以参考 jquery 文档,你的另外两个按钮将有相同的代码。你将改变的是要传递的那些变量对应于您将访问的字段,以及您的查询,如果您将添加然后查询添加然后等等。谢谢
    • 是的,工作:p 但无论我点击什么,该代码都会继续运行,我不明白你给我的那个链接的内容,因为我是从我的老师那里得到的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 2019-09-16
    • 2016-02-04
    相关资源
    最近更新 更多