在php中从表中删除所选行
当在php中从表中删除所选行,php,Php,当复选框选中记录时,我正在使用代码(粘贴在下面)从表中删除该记录。它正在工作,但它并没有从表中删除记录,它只是显示echo“Records deleted Successfully”(已成功删除记录) 请看一下我的代码,并给我一些修改建议 <?php echo "Hiiiiiiiiii"; include("conn.php"); $sql="select * from test "; $res=mysql_query($sql) or die(mysql_error()); ?>
复选框选中记录时,我正在使用代码(粘贴在下面)从表中删除该记录。它正在工作,但它并没有从表中删除记录,它只是显示echo
“Records deleted Successfully”(已成功删除记录)
请看一下我的代码,并给我一些修改建议
<?php
echo "Hiiiiiiiiii";
include("conn.php");
$sql="select * from test ";
$res=mysql_query($sql) or die(mysql_error());
?>
<form name="form1" method="POST" action="">
<table width="578" border="1" align="center" id="menu">
<tr>
<th></th>
<th>id</th>
<th>Name</th>
<th>email</th>
<th>phno</th>
</tr>
<?php
while($row=mysql_fetch_array($res))
{
?>
<tr>
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td><?php echo $row['id'];?></td>
<td><?php echo $row['name'];?></td>
<td><?php echo $row['emailid'];?></td>
<td><?php echo $row['phno'];?></td>
<?php
echo"<td><a href='update.php?id=".$row['id']."'>Update</a></td>";
?>
<?php
}
?>
<tr><td><input type="submit" name="delete" value="Delete" id="delete"></td></tr></tr></table>
<?php
// Check if delete button active, start this
$count = mysql_num_rows($res);
echo "$count";
if(isset($_POST['delete']))
{
$delete_id = $_POST['checkbox'];
$id = count($delete_id );
if (count($id) > 0)
{
foreach ($delete_id as $id_d)
{
$sql = "DELETE FROM `test` WHERE id='$id_d'";
$delete = mysql_query($sql);
}
}
if($delete)
{
echo $id." Records deleted Successfully.";
}
}
>?
身份证件
名称
电子邮件
phno
输出id的代码中有一个输入错误:
... value="<? echo $rows['id']; ?>">
。。。值=”“>
应该是
... value="<? echo $row['id']; ?>">
。。。值=”“>
请注意,您的代码也容易受到攻击。您应该检查POST请求中的id是否真的是整数。输出id的代码中有输入错误:
... value="<? echo $rows['id']; ?>">
if(isset($_POST['delete'])){
$delete = false;
$ids = array();
foreach($_POST['checkbox'] as $val){
$ids[] = (int) $val;
}
$ids = implode("','", $ids);
$sql = "DELETE FROM `test` WHERE id IN ('".$ids."')";
$delete = mysql_query($sql);
$id = mysql_affected_rows();
if($delete){
echo $id." Records deleted Successfully.";
}
}
。。。值=”“>
应该是
... value="<? echo $row['id']; ?>">
。。。值=”“>
请注意,您的代码也容易受到攻击。您应该检查POST请求中的ID是否真的是整数
if(isset($_POST['delete'])){
$delete = false;
$ids = array();
foreach($_POST['checkbox'] as $val){
$ids[] = (int) $val;
}
$ids = implode("','", $ids);
$sql = "DELETE FROM `test` WHERE id IN ('".$ids."')";
$delete = mysql_query($sql);
$id = mysql_affected_rows();
if($delete){
echo $id." Records deleted Successfully.";
}
}
此外,您的复选框应具有:
<input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $row['id']; ?>">
此外,您的复选框应具有:
<input name="checkbox[]" type="checkbox" id="checkbox[]" value="<?php echo $row['id']; ?>">
此处没有$行。请删除s put
<? echo $row['id']; ?>
此处没有$行。请删除s put
<? echo $row['id']; ?>
您应该将复选框命名为
name="checkbox[<?php echo $row['id'] ?>]"
按计数选择id的方法相当笨拙,而且只删除了1行,这显然是不存在的,因为计数不是id。
此外,复选框的值意味着复选框是否被勾选,它通常不包含值,通常的方法是使名称包含复选框的实际含义。您应该将复选框命名为
name="checkbox[<?php echo $row['id'] ?>]"
按计数选择id的方法相当笨拙,而且只删除了1行,这显然是不存在的,因为计数不是id。
此外,复选框的值意味着复选框是否被勾选,它通常不包含值,通常的方法是使名称包含复选框的实际含义。在选择记录之前输入删除代码,然后只有您可以看到数据库中可用的实际记录
<?php
echo "Hiiiiiiiiii";
include("conn.php");
if(isset($_POST['delete']))
{
$delete_id = $_POST['checkbox'];
$id = count($delete_id );
if (count($id) > 0)
{
foreach ($delete_id as $id_d)
{
$sql = "DELETE FROM `test` WHERE id='$id_d'";
$delete = mysql_query($sql);
}
}
if($delete)
{
echo $id." Records deleted Successfully.";
}
}
$sql="select * from test ";
$res=mysql_query($sql) or die(mysql_error());
?>
<form name="form1" method="POST" action="">
<table width="578" border="1" align="center" id="menu">
<tr>
<th></th>
<th>id</th>
<th>Name</th>
<th>email</th>
<th>phno</th>
</tr>
<?php
while($row=mysql_fetch_array($res))
{
?>
<tr>
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td><?php echo $row['id'];?></td>
<td><?php echo $row['name'];?></td>
<td><?php echo $row['emailid'];?></td>
<td><?php echo $row['phno'];?></td>
<?php
echo"<td><a href='update.php?id=".$row['id']."'>Update</a></td>";
?>
<?php
}
?>
<tr><td><input type="submit" name="delete" value="Delete" id="delete"></td></tr></tr></table>
<?php
// Check if delete button active, start this
$count = mysql_num_rows($res);
echo "$count";
>?
在选择记录之前输入删除代码,这样只有您才能看到数据库中可用的实际记录
<?php
echo "Hiiiiiiiiii";
include("conn.php");
if(isset($_POST['delete']))
{
$delete_id = $_POST['checkbox'];
$id = count($delete_id );
if (count($id) > 0)
{
foreach ($delete_id as $id_d)
{
$sql = "DELETE FROM `test` WHERE id='$id_d'";
$delete = mysql_query($sql);
}
}
if($delete)
{
echo $id." Records deleted Successfully.";
}
}
$sql="select * from test ";
$res=mysql_query($sql) or die(mysql_error());
?>
<form name="form1" method="POST" action="">
<table width="578" border="1" align="center" id="menu">
<tr>
<th></th>
<th>id</th>
<th>Name</th>
<th>email</th>
<th>phno</th>
</tr>
<?php
while($row=mysql_fetch_array($res))
{
?>
<tr>
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
<td><?php echo $row['id'];?></td>
<td><?php echo $row['name'];?></td>
<td><?php echo $row['emailid'];?></td>
<td><?php echo $row['phno'];?></td>
<?php
echo"<td><a href='update.php?id=".$row['id']."'>Update</a></td>";
?>
<?php
}
?>
<tr><td><input type="submit" name="delete" value="Delete" id="delete"></td></tr></tr></table>
<?php
// Check if delete button active, start this
$count = mysql_num_rows($res);
echo "$count";
>?
添加错误报告(E\u ALL)代码>到文件的顶部。现在您将能够看到所有错误
另外,使用var\u dump()
检查变量中的实际内容。运行var\u dump($\u POST)时代码>你可以清楚地看到你的帖子里到底有什么内容。
添加错误报告(E\u ALL)代码>到文件的顶部。现在您将能够看到所有错误
另外,使用var\u dump()
检查变量中的实际内容。运行var\u dump($\u POST)时代码>你可以清楚地看到你的帖子里到底有什么内容。
您应该将此代码移到include(“conn.php”)的下面代码>在您的代码中
if (isset($_POST['delete'])) {
$delete_id = $_POST['checkbox'];
$id = count($delete_id);
if (count($id) > 0) {
foreach ($delete_id as $id_d) {
$sql = "DELETE FROM `test` WHERE id='$id_d'";
$delete = mysql_query($sql);
}
}
if ($delete) {
echo $id . " Records deleted Successfully.";
}
}
您应该将此代码移到include(“conn.php”)的下面代码>在您的代码中
if (isset($_POST['delete'])) {
$delete_id = $_POST['checkbox'];
$id = count($delete_id);
if (count($id) > 0) {
foreach ($delete_id as $id_d) {
$sql = "DELETE FROM `test` WHERE id='$id_d'";
$delete = mysql_query($sql);
}
}
if ($delete) {
echo $id . " Records deleted Successfully.";
}
}
需要按以下方式进行更改才能完美运行:
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="**<?php** echo $rows['id']; ?>"></td>
需要按以下方式进行更改才能完美运行:
<td><input name="checkbox[]" type="checkbox" id="checkbox[]" value="**<?php** echo $rows['id']; ?>"></td>
给我们$u POST['checkbox']的输出我已经回答了你同样的第一个问题。@Gautam3164:它唯一的显示数组打印($\u POST['checkbox'])
数组@Mihai Iorga:是的,我是php新手,以前的代码对我来说很难学习,所以我尝试了这段代码。它很简单,但不起作用。请给我们解释一下$u POST['checkbox']的输出。我已经回答了你同样的第一个问题。@Gautam3164:它唯一的显示数组print\r($\u POST['checkbox'])
数组@Mihai Iorga:是的,我是php新手,以前的代码对我来说很难学习,所以我尝试了这段代码,它很简单,但不起作用。请向所有人解释metanks来解释我。向所有人解释tanks来解释我。另外,请检查Jelmers回答如何避免此类问题。此外,检查Jelmers回答如何避免此类问题@afshim:请使用我们网站上的格式化工具。例如,我编辑了您的答案,以显示muli-line代码片段也有格式。我希望这能对您有所帮助。@afshim:请熟悉我们网站上的格式化工具。例如,我编辑了您的答案,以显示muli-line代码片段也有格式。我希望这对你有点帮助。