-1

アイテムの削除に問題があります。私の問題は、削除ボタンをクリックしてもアイテムが消えませんが、更新すると消えます。

そして、これは私のコードです:

index.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>

upload_process.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 が実行されます。行は既に削除されています。

ところで、これは DB のあらゆる種類の変更に対する一般的な推奨事項です。INSERTS および UPDATES の場合。このようにして、すべての変更が反映されます。

複数のテーブルの内容を変更し、これらのテーブルのデータをページの他の部分 (例として多くのサイトのタグなど) に表示する場合、そのようなすべての処理をページの最上部に配置するのが最善です。その後、すべてのコンテンツ生成を行います。

于 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 に答える