Kel*_*Hii -1 php mysql checkbox isset delete-row
我尝试删除"admin"数据库中的数据,但删除按钮不起作用.
这是我的首要任务
<?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);
?>
Run Code Online (Sandbox Code Playgroud)
这是我的复选框代码
<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>
Run Code Online (Sandbox Code Playgroud)
而且,这是我的按钮代码
<input type='button' id="delete" value='Delete' name='delete'>
Run Code Online (Sandbox Code Playgroud)
这是我的php功能代码
<?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();
?>
Run Code Online (Sandbox Code Playgroud)
包含代码中的所有输入元素<form>
:<form> all inputs are here </form>
更新:
<input name = "checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $rows['course_code'];?>">
Run Code Online (Sandbox Code Playgroud)
到(这里的ID无关紧要):
<input name="checkbox[]" type="checkbox" value="<?php echo $rows['course_code'];?>"/>
Run Code Online (Sandbox Code Playgroud)
和你的按钮代码:
<input type='button' id="delete" value='Delete' name='delete'>
Run Code Online (Sandbox Code Playgroud)
至
<input type="submit" value="Delete"/>
Run Code Online (Sandbox Code Playgroud)
设置开始<form>
标记<form action="delete.php" method="post">
注意:我假设下面的代码在delete.php文件中.如果没有在上面的开始表格标签中用该名称替换"delete.php".
你的delete.php文件:
<?php
$cheks = implode("','", $_POST['checkbox']);
$sql = "delete from $tbl_name where course_code in ('$cheks')";
$result = mysql_query($sql) or die(mysql_error());
mysql_close();
?>
Run Code Online (Sandbox Code Playgroud)
注意: 由于mysql_将来会弃用,更好的是使用mysqli扩展.但在使用之前,您必须在服务器上启用它.mysqli是php的一部分,而较新版本的php有它但没有启用.要启用此功能,请查看php信息页面,并在该页面的"已加载配置文件"行中找到php.ini文件的路径.你可以通过在浏览器中加载php文件看到php信息页面:
<?php
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
在文本编辑器中打开php.ini文件并取消注释或extension=php_mysqli.dll
在扩展名列表中添加一行.还搜索"extension_dir"并打开它所说的目录并确保php_mysqli.dll文件存在.(如果不使用Windows操作系统,可能会有.so扩展名)
然后重新启动服务器,你就完成了!
将mysqli_与预处理语句一起使用确实是一种更好,更安全的方法.然而,有些人甚至会建议PDO,但即便是PDO也没有mysqli提供的一些功能; 奇怪的是.甚至PDO也需要消毒.许多人认为使用PDO将解决注入问题,这是错误的. - 谢谢弗雷德.