Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从表中删除,其中ID='$id'—;变量不粘_Php_Mysql - Fatal编程技术网

Php 从表中删除,其中ID='$id'—;变量不粘

Php 从表中删除,其中ID='$id'—;变量不粘,php,mysql,Php,Mysql,在这里尝试执行一项非常简单的任务 我有一个,在一些方便的中包含4行数据。我想添加一个删除按钮以从表中删除该行。delete.php中的脚本似乎已经完成,但当我返回并检查dashboard.php和PHPMyAdmin以获取列表时,该行从未被删除 以下是删除按钮的代码(在PHP中): Print”“; 转到delete.php: <? //initilize PHP if($_POST['submit']) //If submit is hit { //then connect

在这里尝试执行一项非常简单的任务

我有一个
,在一些方便的
  • 中包含4行数据。我想添加一个删除按钮以从表中删除该行。delete.php中的脚本似乎已经完成,但当我返回并检查dashboard.php和PHPMyAdmin以获取列表时,该行从未被删除

    以下是删除按钮的代码(在PHP中):

    Print”“;
    
    转到delete.php:

    <? 
    //initilize PHP
    
    if($_POST['submit']) //If submit is hit
    {
       //then connect as user
       //change user and password to your mySQL name and password
       mysql_connect("mysql.***.com","***","***") or die(mysql_error()); 
    
       //select which database you want to edit
       mysql_select_db("shpdb") or die(mysql_error()); 
    
       //convert all the posts to variables:
       $id = $_POST['ID'];
    
    
       $result=mysql_query("DELETE FROM savannah WHERE ID='$id'") or die(mysql_error()); 
    
        //confirm
       echo "Patient removed. <a href=dashboard.php>Return to Dashboard</a>"; 
    }
    ?>
    

    它拒绝坚持,因为你把它称为一件事,而用另一件事来获得它。更改:

    "<input name=".$info['ID']." type=hidden>"
    
    您还应该引用属性值,例如:

    print <<<END
    form action="delete.php" method="post">
    <input type="hidden" name="ID" value="$info[ID]">
    <input type="submit" name="submit" value="Remove">
    </form>
    END;
    
    打印
    
    出于对网络的热爱,请不要自己构建SQL查询。使用。

    这是我想提出的另一点。我95%确定不能给输入一个数字名称/id属性。它必须像“id_1”而不是“1”

    使用php还可以创建数组

    所以你可以这么做

    <input name="delete[2]">
    

    您是否可以打印,即echo“从savannah删除,其中ID='$ID'”;查看$id是否真的替换为该值。此代码易受SQL注入攻击。此外,您还必须确保人们不能通过猜测id来删除任意内容。如果这是与用户相关的数据,是什么阻止我猜测id和删除其他人的信息。我在另一篇文章中写了一个函数。。。函数安全($value){return mysql\u real\u escape\u string($value);}但是,封装:$result=mysql\u查询(“从savannah删除,其中ID='$ID'))或die(mysql\u error());使用安全功能会破坏它。。。要我再发一封信吗?谢谢克莱特斯。我知道这很简单。
    $id = $_POST['ID'];
    
    print <<<END
    form action="delete.php" method="post">
    <input type="hidden" name="ID" value="$info[ID]">
    <input type="submit" name="submit" value="Remove">
    </form>
    END;
    
    ?>
    form action="delete.php" method="post">
    <input type="hidden" name="ID" value="<?php echo $info['ID'] ?>">
    <input type="submit" name="submit" value="Remove">
    </form>
    <?
    
    <input name="delete[2]">
    
    if(isset($_POST['delete']))
      foreach($_POST['delete'] as $key=>$val)
        if($_POST['delete'][$key])  delete from table where id = $val