Supprimer plusieurs lignes en sélectionnant des cases à cocher à l'aide de PHP
Je veux supprimer plusieurs lignes de base de données MYSQL. J'ai créé ce delete.php fichier pour sélectionner les différents liens et de les supprimer à l'aide des cases à cocher.
<html>
<head>
<title>Links Page</title>
</head>
<body>
<h2>Choose and delete selected links.</h2>
<?php
$dbc = mysqli_connect('localhost','root','admin','sample')
or die('Error connecting to MySQL server');
$query = "select * from links ORDER BY link_id";
$result = mysqli_query($dbc,$query)
or die('Error querying database');
$count=mysqli_num_rows($result);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF"> </td>
<td colspan="3" bgcolor="#FFFFFF"><strong>Delete multiple links</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Link ID</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Link Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Link URL</strong></td>
</tr>
<?php
while ($row=mysqli_fetch_array($result)) {
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox" type="checkbox" value="<?php echo $row['link_id']; ?>"></td>
<td bgcolor="#FFFFFF"><?php echo $row['link_id']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $row['link_name']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $row['link_url']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" value="Delete"></td>
</tr>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td><form name="form1" method="post" action="">
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#FFFFFF"> </td>
<td colspan="3" bgcolor="#FFFFFF"><strong>Delete multiple links</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF">#</td>
<td align="center" bgcolor="#FFFFFF"><strong>Link ID</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Link Name</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Link URL</strong></td>
</tr>
<?php
while ($row=mysqli_fetch_array($result)) {
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox" type="checkbox" value="<?php echo $row['link_id']; ?>"></td>
<td bgcolor="#FFFFFF"><?php echo $row['link_id']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $row['link_name']; ?></td>
<td bgcolor="#FFFFFF"><?php echo $row['link_url']; ?></td>
</tr>
<?php
}
?>
<tr>
<td colspan="4" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" value="Delete"></td>
</tr>
<?php
//Check if delete button active, start this
if(isset($_POST['delete']))
{
$checkbox = $_POST['checkbox'];
for($i=0;$i<count($checkbox);$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM links WHERE link_id='$del_id'";
$result = mysqli_query($sql);
}
//if successful redirect to delete_multiple.php
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=view_links.php\">";
}
}
mysqli_close($dbc);
?>
</table>
</form>
</td>
</tr>
</table>
</body>
</html>
Cela ne semble pas supprimer toute la ligne. Mes données sont renseignées dans le tableau. Je crois que le problème est avec le code PHP. S'il vous plaît aidez-moi à sortir d'ici.
source d'informationauteur spyder
Vous devez vous connecter pour publier un commentaire.
Vous devez le traiter comme un tableau de ce genre,
Alors seulement, vous pouvez prendre à son compte et fait une boucle pour la suppression.
Vous avez aussi besoin de transmettre la connexion à la base de la requête.
Le vôtre n'a pas l'inclure:
Utiliser la notation de tableau comme
name="checkbox[]"
dans votreinput
élément. Cela vous donnera$_POST['checkbox']
en tant que tableau. Dans la requête, vous pouvez l'utiliser commeC'est une requête unique de tous les supprimer.
Note: Vous avez besoin d'échapper les valeurs passées en
$_POST['checkbox']
avecmysql_real_escape_string
ou similaire pour empêcher L'Injection SQL.Supprimer Plusieurs case à cocher à l'aide de Code PHP
Quelque chose que, parfois, les cultures en place, vous pouvez/ne peuvent pas être conscient de
De ne pas toujours être ramassé par $_POST['supprimer'] lors de l'utilisation de IE. Firefox et chrome fonctionne parfaitement bien. Je utiliser un autre plutôt que ce qui résout le problème pour IE
Que pour vos pas de la suppression dans le code ci-dessus vous semblent être l'écho d'2x jeux de cases à cocher à la fois en tirant les mêmes données? Est-ce juste un copier + coller erreur ou est-ce réellement la façon dont votre code est?
Si son code est qui va être le problème que l'utilisateur pourrait être cochant une case de tableau, mais l'autre sera désactivée si le code php pour supprimer est de se confondre. Renommer le 2ème case à cocher ou supprimer ce bloc de code html certes, vous n'avez pas besoin d'afficher la même liste à deux reprises ?