PHP - MySQL Удаление записи - PullRequest
       16

PHP - MySQL Удаление записи

0 голосов
/ 24 февраля 2012

Я извлекаю записи из базы данных и создал PHP-файл для выполнения при нажатии кнопки «Удалить».Код работает в том смысле, что он удаляет записи из базы данных, но он всегда удаляет первую запись в базе данных, а не ту, которая относится к идентификатору запроса, который находится в таблице.Любая помощь была бы отличной

Таблица:

<?php

    //3. Perform database query
        $result = mysql_query("SELECT * FROM Request
        WHERE DepID = 'CO'
        AND Status = 'P'", $connection);
        if(!$result){
            die("Database query failed: " . mysql_error());
        }

    //4. Use Returned Data
    while ($row = mysql_fetch_array($result)) {
    $row['ReqID'];  

        echo "<tr>";
        echo "<td class='req' align='center'>".$row['ReqID']."</td>";
        echo "<td class='req' align='center'>".$row['ModTitle']."</td>"; 
        echo "<td class='req' align='center'>".$row['BuildingID']."</td>";
        echo "<td class='req' align='center'>".$row['RoomID']."</td>";
        echo "<td class='req' align='center'>".$row['Priority']."</td>";
        echo "<td class='req' align='center'>".$row['W1']."</td>";
        echo "<td class='req' align='center'>".$row['P1']."</td>";
        echo "<td class='req' align='center'><a href=''><img height='18px' src='images/edit.png'></a></td>";
        echo "<td class='req' align='center'><a href='deletereq.php'><img src='images/exit.png'></a></td>";
        echo "</tr>";




    }
?>

И тогда это файл deletereq.php:

<?php require_once("includes/connection.php"); ?>

<?php

    //3. Perform database query
        $result = mysql_query("SELECT * FROM Request
        WHERE DepID = 'CO'
        AND Status = 'P'", $connection);
        if(!$result){
            die("Database query failed: " . mysql_error());
        }

    //4. Use Returned Data
    while ($row = mysql_fetch_array($result)) {
    $row['ReqID'];


$result2 = mysql_query("DELETE FROM Request 
                       WHERE ReqID = {$row['ReqID']} LIMIT 1", $connection);
    if (mysql_affected_rows() == 1) {
                redirect_to("content.php");
            } else {
            //deletion failed
            echo "<h1>Request Deletion Failed.</h1>";
            echo "<p>" . mysql_error() . "</p>";
            echo "<a href=\"request.php\"> Return to request</a>";
        }
        }
?>

<?php mysql_close($connection); ?>

1 Ответ

2 голосов
/ 24 февраля 2012

На странице дисплея

echo "<td class='req' align='center'><a href='deletereq.php?id=".$row['ReqID']."'><img src='images/exit.png'></a></td>";

И на странице удаления измените запрос, чтобы использовать значение $ _GET ['id']

Но учтите, что в зависимости от вашего использования и тому подобного здесь вы, возможно, захотите выяснить, каковы ваши потребности с точки зрения безопасности и т. Д. Кроме того, вообще говоря, использование GET для изменений не является хорошей идеей, было бы лучше использовать POST, а затем перенаправление. Суть в том, что вышесказанное сработает, но этого (и того, что у вас уже есть) достаточно, чтобы вы могли нанести серьезный ущерб себе, если не будете осторожны.

...