Comment faire pour supprimer plusieurs lignes de base de données mysql avec case à cocher à l'aide de PHP?
J'essaie de delete
mes données dans "admin" de la base de données, mais le bouton supprimer ne fonctionne pas.
C'est ma partie supérieure
<?php
$host="localhost"; //Host name
$username="root"; //Mysql username
$password=""; //Mysql password
$db_name="admin"; //Database name
$tbl_name="admin"; //Table name
//Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
?>
C'est ma case code
<tbody>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td><?php echo $rows['course_code']; ?></td>
<td><?php echo $rows['course_name']; ?></td>
<td><?php echo $rows['lecture_id']; ?></td>
<td><input name="checkbox[]" type="checkbox"
id="checkbox[]" value="<?php echo $rows['course_code'];?>"></td>
<td><form>
</form>
</td>
</tr>
<?php
}
?>
</tbody>
et, c'est mon code du bouton
<input type='button' id="delete" value='Delete' name='delete'>
C'est ma fonction php code
<?php
if(isset($_POST['delete'])){
for($i=0;$i<$count;$i++){
$del_id = $checkbox[$i];
$sql = "DELETE FROM $tbl_name WHERE course_code='$del_id'";
$result = mysql_query($sql);
}
if($result){
echo "<meta http-equiv=\"refresh\" content=\"0;URL=delete.php\">";
}
}
mysql_close();
?>
- Votre entrée est en dehors de votre
<form>
tag; premier problème majeur. De Plus, il n'y a pasaction
ou de la méthode définie dans le fichier qui est censé faire le travail. I. e.:<form action="delete.php"... method = "post"
- corriger ce mettre vos fichiers en entrée à l'intérieur de la forme
<td><form> </form>
- Consulter ce Q&A sur ce qui est similaire à la vôtre, stackoverflow.com/q/14475096 vous trouverez votre réponse. C'est le seul que j'ai commencé avec, et m'a beaucoup aidé dans le passé.
- De Plus, la forme de la méthode par défaut pour OBTENIR s'il n'est pas. Ne
<form action="delete.php" method="post">
- Vous avez maintenant suffisamment d'informations pour résoudre ce problème vous-même.
Vous devez vous connecter pour publier un commentaire.
inclure tous les éléments d'entrée au sein de votre
<form>
tags:<form> all inputs are here </form>
mise à jour:
à (id n'a pas d'importance ici):
et votre bouton:
à
définir ouverture
<form>
tag<form action="delete.php" method="post">
Note:
Je suppose ci-dessous les codes sont en delete.php fichier. si pas de remplacer "delete.php" avec ce nom au-dessus de l'ouverture de balise form.
votre delete.php fichier:
Remarque:
Depuis mysql_ va déprécier sur l'avenir, mieux est d'utiliser l'extension mysqli. Mais avant de l'utiliser, vous devez l'activer sur votre serveur. mysqli est une partie de php et la version plus récente de php, mais pas activé. Pour permettre cela, visualisez les informations php de la page et de trouver le chemin de php.fichier ini dans "Chargement du Fichier de Configuration sur la ligne" sur cette page.
Vous pouvez voir les informations php de la page en chargement ci-dessous fichier php dans le navigateur:
ouvert que php.fichier ini dans un éditeur de texte et des nations unies-commentaire ou ajouter une ligne
extension=php_mysqli.dll
à la liste des extensions de là.aussi la recherche pour "extension_dir" et ouvrir le répertoire, il dit, et assurez-vous que php_mysqli.dll le fichier est là.
(vous pourriez avoir .afin d'extension si vous ne pas utiliser windows OS)
Puis redémarrez votre serveur et vous avez terminé!
Par Fred -ii-
mysql_
autodérision avis serait probablement encore plus de points "bonus", ainsi que SQL et XSS, injection. 😉mysqli_
avec les requêtes préparées c'est en effet un meilleur et plus sûr méthode. Toutefois, certains vont même jusqu'à suggérer PDO, mais même PDO n'a pas certaines des fonctionnalités quemysqli_
offre; étrangement. Même AOP besoins d'assainissement. Beaucoup pensent que l'utilisation de PDO permettra de résoudre le problème d'injection, ce qui est faux. De nombreux va pas upvote ou va downvote une bonne réponse, pour ne pas mentionner lamysql_
autodérision avis, pensé que vous aimeriez savoir 😉essayer ce code. c'est bien le travail.
connection.php
multiple_delete.php
delete.php