简体   繁体   中英

Table row delete button

When I try the delete button I get no errors and the page refreshes but the data won't be deleted, so I think the problem is in passing along the id from a row.

None of the other solutions have worked for me so far. This is the table body.

<tbody>
<?php

$server = "localhost";
$user = "Website";
$pass = "pass";
$db = "db";

$conn = new mysqli($server, $user, $pass, $db);

if ($conn->connect_error)
{
    die("connection to database failed");
}

$query = "SELECT * FROM koppeling";
$result = mysqli_query($conn, $query);

while($row = $result-> fetch_assoc())
{
    echo "<tr>";
    echo "<td>".$row['Wagon_ID']."</td>";
    echo "<td name='wagon'>".$row['EPC']."
    <a href='delete.php' class='table-button' 
    id='".$row['id']."'>Delete</a>";
    echo "<td>";
    echo "</td>";
    echo "</tr>"; 
}
    ?>
</tbody>

delete.php file:

<?php
$id = $_GET['id'];
$server = "localhost";
$user = "Website";
$pass = "pass";
$db = "db";

$conn = new mysqli($server, $user, $pass, $db);

if ($conn->connect_error)
{
    echo "Conn db failed";``
}

$query = "DELETE FROM koppeling WHERE id='$id';";

try
{
    mysqli_query($conn, $query);
    mysqli_close($conn);
    header('Location: koppelen.php');
}

catch (Exception $e)
{
    echo "$e";
}
?>

Can anyone help me figure out what is wrong, I've been stuck on this quite a while now.

Instead if this

while($row = $result-> fetch_assoc())
{
    echo "<tr>";
    echo "<td>".$row['Wagon_ID']."</td>";
    echo "<td name='wagon'>".$row['EPC']."
    <a href='delete.php' class='table-button' 
    id='".$row['id']."'>Delete</a>";
    echo "<td>";
    echo "</td>";
    echo "</tr>"; 
}

Write this

while($row = $result-> fetch_assoc())
{
    echo "<tr>";
    echo "<td>".$row['Wagon_ID']."</td>";
    echo "<td name='wagon'>".$row['EPC']."
    <a href='delete.php?id=".$row['id']."' class='table-button' 
    id='".$row['id']."'>Delete</a>";
    echo "<td>";
    echo "</td>";
    echo "</tr>"; 
}

It would be better if you used form with POST request or ajax instead of links.

If you really want to do it this way you can add query string to your href attribute.

$url = "delete.php?id=" . $row['id'];
<a href="<?php echo $url ?>" class='table-button' 
id='".."'>Delete</a>";

You have to change the below line

$query = "DELETE FROM koppeling WHERE id='$id';";

to

$query = "DELETE FROM koppeling WHERE id='".$id."';";

so that id value will be properly populated in the query

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM