Php 删除多行函数中未定义的变量和索引
编辑:我添加了这个 如果(isset($_POST['delete'])和&isset($_POST['checkbox'])) (从下面的答案中获得,但似乎asnwer已经不在了) 现在,未定义的变量和索引错误消失了…但现在的问题是,当我尝试删除时,需要检查并单击删除按钮两次以删除选定的行Php 删除多行函数中未定义的变量和索引,php,Php,编辑:我添加了这个 如果(isset($_POST['delete'])和&isset($_POST['checkbox'])) (从下面的答案中获得,但似乎asnwer已经不在了) 现在,未定义的变量和索引错误消失了…但现在的问题是,当我尝试删除时,需要检查并单击删除按钮两次以删除选定的行 <form name="frmSearch" method="post" action="insert-add.php"> <table width="600" border="1"
<form name="frmSearch" method="post" action="insert-add.php">
<table width="600" border="1">
<tr>
<th width="50"> <div align="center">#</div></th>
<th width="91"> <div align="center">ID </div></th>
<th width="198"> <div align="center">First Name </div></th>
<th width="198"> <div align="center">Last Name </div></th>
<th width="250"> <div align="center">Mobile Company </div></th>
<th width="100"> <div align="center">Cell </div></th>
<th width="100"> <div align="center">Workphone </div></th>
<th width="100"> <div align="center">Group </div></th>
</tr>
</form>
<?
echo "<form name='form1' method='post' action=''>";
while($objResult = mysql_fetch_array($objQuery))
{
echo "<tr>";
echo "<td align='center'><input name=\"checkbox[]\" type=\"checkbox\" id=\"checkbox[]\" value=\"$objResult[addedrec_ID]\"></td>";
echo "<td>$objResult[addedrec_ID] </td>";
echo "<td>$objResult[FirstName]</td>";
echo "<td>$objResult[LastName] </td>";
echo "<td>$objResult[MobileCompany] </td>";
echo "<td>$objResult[Cell] </td>";
echo "<td>$objResult[WorkPhone] </td>";
echo "<td>$objResult[Custgroup] </td>";
echo "</tr>";
}
echo "<td colspan='7' align='center'><input name=\"delete\" type=\"submit\" id=\"delete\" value=\"Delete\">";
if (isset($_POST['delete']) && isset($_POST['checkbox'])) // from button name="delete"
{
$checkbox = ($_POST['checkbox']); //from name="checkbox[]"
$countCheck = count($_POST['checkbox']);
for($d=0;$d<$countCheck;$d++)
{
$del_id = $checkbox[$d];
$sql = "DELETE from UserAddedRecord where addedrec_ID = $del_id";
$result2=mysql_query($sql) or trigger_error(mysql_error());;;
}
if($result2)
{
$fgmembersite->GetSelfScript();
}
else
{
echo "Error: ".mysql_error();
}
}
echo "</form>";
#
身份证件
名字
姓
移动公司
单间牢房
工作电话
组
第一个通知是由于没有$\u POST[“checkbox”]变量。如果您使用的是AJAX,请使用firebug检查您的查询,以检查是否发送了checkbox变量
第二个未定义的是来自您的嵌套。请参见下面的示例:
$foo = 0
if($foo ==1){
$bar = 5;
}
if($bar == 2){
//Blah
}
如果你要运行,那么$bar将永远不会被设置,因此通知。由于$countCheck设置为0,而$u POST[“checkbox”]未设置,则for循环从未运行,因此$result2从未设置。您的问题是,您有一个表单嵌套在另一个表单中
<form name="frmSearch" method="post" action="insert-add.php">
<> p>中间有
echo "<form name='form1' method='post' action=''>";
echo”“;
删除第二个,即“回声”的一个,即
除非关闭第一个表单,否则无法在其中启动另一个表单…如果在查询之前$delu
的值是多少?另外,您只是在请求SQL注入攻击。请发布您试图处理的HTML表单。@Michael谢谢您的回复,我用更完整的表单编辑了我的问题。@Inedia谢谢您的回复,我已经发布了我的表单。我想帮您,但这只是一堆完全非结构化的代码。首先考虑您想要完成的任务,创建代码的概念设计,然后开始编写代码。这会产生好的代码,每个人都可以阅读并帮助您…哦,对不起,我没有完全复制表单…事实上,我确实在第二个表单之前关闭了第一个表单。然后添加正确的代码?我还会更改$del_id=$checkbox[$d];应用intval类,这将强制它使用一个数字,因此您不必担心SQL注入。。所以它现在是$del_id=intval($checkbox[$d]);您可以添加错误报告(E|u error | E|u WARNING | E|u PARSE);在PHP文件的顶部,在open PHP标记下面,忽略未初始化的变量和其他类似错误。我删除了第二个表单标记和for数组,因为我没有您的数据库,使其成为基本HTML,然后添加了一个结束表单标记,效果很好。请使用准确的代码进行更新,它可以被修复?在您的新代码中,使用2个表单标签是没有意义的。删除TR下的结束表单标签,删除您回显的打开表单标签。对不起,我现在需要离开,我明天会更新给您,保证。非常感谢你的回复。