-1

我在删除项目时遇到问题。我的问题是当我单击删除按钮时,该项目不会消失,但是当我刷新它时它会消失。

这是我的代码:

索引.php

<?php
    $config = mysql_connect("localhost", "root", "") or die (mysql_error());
    $db = mysql_select_db("darith_upload_img",$config) or die (mysql_error());
?>
<!DOCTYPE HTML>
<html>
    <head></head>
<body>

        <form action="upload_process.php" enctype="multipart/form-data" method="POST">
            <input type="file" name="img" /><br />


            <input type="submit" value="upload Now" />

        </form>
        <?php
            $result = mysql_query("SELECT * FROM table_img");
            while($row = mysql_fetch_array($result))

            {

            $id = $row['id_img'];
                ?>
            <table border="1">
                    <tr>
                        <td><?php echo $row['id_img']; ?></td>
                        <td width="200" ><?php echo $row['location_img']; ?></td>
                        <td><?php echo '<img src="' . $row['location_img'] . '" width="60"/>'; ?></td>
                        <td><a href="index.php?id=<?php echo $id;?> " onClick="return confirm('Are you sure?')">Delete</a></td>
                    </tr>
                </table>
        <?php
            }

        ?>

        <?php
            if(isset($_GET['id'])){
                $id_img=$_GET['id'];

                $q_del=mysql_query("DELETE FROM table_img where id_img ='$id_img'");
                header("Location: http://example.com/path/to/index.php");

            }
        ?>
</body>

</html>

上传进程.php

<?php
    $config = mysql_connect("localhost", "root", "") or die (mysql_error());
    $db = mysql_select_db("darith_upload_img", $config) or die (mysql_error());

    if(isset($_FILES["img"]["tmp_name"]))
    {
        move_uploaded_file($_FILES["img"]["tmp_name"], "picture/". $_FILES["img"]["name"]);


        $location = "picture/".$_FILES["img"]["name"];

    $save = mysql_query("INSERT INTO table_img (location_img) VALUES ('$location')");

    header("Location: http://example.com/path/to/index.php");
    }
    exit();



?>
4

4 回答 4

2
header("Location: http://example.com/path/to/index.php");

此代码在删除后不会刷新页面,因为您只能在响应正文的第一个字节之前发送标头,否则将被忽略。

将您的删除代码放在页面的最顶部(就$db = ...在行之后)以使header功能正常工作。

于 2013-08-31T08:56:49.620 回答
1

将 DELETE 部分放在上面显示部分。这样当您的 SELECT 运行时。该行已被删除。

顺便说一句,这是对数据库进行各种修改的一般良好做法。用于插入和更新。这样所有的变化都会被反映。

如果您要更改多个表中的内容并将这些表中的数据显示在页面的其他部分(例如许多站点上的标签),最好将所有此类处理放在页面的最顶部。在那之后做你所有的内容生成。

于 2013-08-31T08:56:08.953 回答
0

试试这个代码:

<?php

    $config = mysql_connect("localhost", "root", "") or die (mysql_error());
    $db = mysql_select_db("darith_upload_img",$config) or die (mysql_error());
   //delete part
   if(isset($_GET['id'])){
        $id_img=$_GET['id'];

        $q_del=mysql_query("DELETE FROM table_img where id_img ='$id_img'");
        header("location:index.php");

    } 

?>

    <form action="upload_process.php" enctype="multipart/form-data" method="POST">
        <input type="file" name="img" /><br />


        <input type="submit" value="upload Now" />

    </form>
    <?php
    $result = mysql_query("SELECT * FROM table_img");
        while($row = mysql_fetch_array($result))
        {

        $id = $row['id_img'];
            ?>
        <table border="1">
                <tr>
                    <td><?php echo $row['id_img']; ?></td>
                    <td width="200" ><?php echo $row['location_img']; ?></td>
                    <td><?php echo '<img src="' . $row['location_img'] . '" width="60"/>'; ?></td>
                    <td><a href="index.php?id=<?php echo $id;?> " onClick="return confirm('Are you sure?')">Delete</a></td>
                </tr>
            </table>
    <?php } ?>

于 2013-08-31T09:10:43.097 回答
0

对不起,我的英语不好

if(isset($_FILES["img"]["tmp_name"]))
    {
        move_uploaded_file($_FILES["img"]["tmp_name"], "picture/". $_FILES["img"]["name"]);

    $location = "picture/".$_FILES["img"]["name"];

$save = mysql_query("INSERT INTO table_img (location_img) VALUES ('$location')");

header("location:index.php");
exit();
}

首先改变你的 exit(); 函数并将其写入 if 条件

<?php
        $result = mysql_query("SELECT * FROM table_img");
        while($row = mysql_fetch_array($result))

        {

        $id = $row['id_img'];
            ?>
        <table border="1">
                <tr>
                    <td><?php echo $row['id_img']; ?></td>
                    <td width="200" ><?php echo $row['location_img']; ?></td>
                    <td><?php echo '<img src="' . $row['location_img'] . '" width="60"/>'; ?></td>
                    <td><a href="delete.php?id=<?php echo $id;?> " onClick="return confirm('Are you sure?')">Delete</a></td>
                </tr>
            </table>
    <?php
        }

    ?>

创建 delete.php 文件并将代码写在那里

<?php
        if(isset($_GET['id'])){
            $id_img=$_GET['id'];

            $q_del=mysql_query("DELETE FROM table_img WHERE id_img ='".$id_img."'");
            header("location:index.php");
            exit();
        }
    ?>
于 2013-08-31T09:10:44.570 回答