我希望以表格和行格式显示从mysql检索到的值。 所以我使用了以下代码。
<?php
while($rows1 = mysql_fetch_array($result1)){
?>
<tr height="30" >
<?php $elyid = $rows1['id'] ?>
<form action="leaveactions.php" method="post" name="viewleave">
<td width="82"><?php echo $rows1['empid'];?></td>
<td><?php echo $rows1['name'];?></td>
<td><?php echo $rows1['leavetype'];?></td>
<td width="82"><?php echo $rows1['startdate']; ?></td>
<td width="82"><?php echo $rows1['enddate']; ?></td>
<td><?php echo $rows1['leavetype']; ?></td>
<td>
<input type="submit" name="<?php $rows1['id']; ?>" value="accept"/>
</td>
<td>
<input type="submit" name="reject" value="reject"/>
<input type="hidden" name="emplid" value="<?php echo $rows1['id'] ?>"/>
</td>
</tr>
<?php } ?>
和leaveactions.php
$ii=0;
$query1 = "select * from applied_leaves where supervisorid ='".$employeeId."' and status='not approved'";
$result1 = mysql_query($query1) or die (mysql_error());
$num1 = mysql_numrows($result1);
while($rows1 = mysql_fetch_array($result1)) {
$ii++;
echo $_POST["$ii"];
if(isset($_POST['$ii'])){
echo "accepted "; echo $_POST['$ii'];
$updateEmp = "update applied_leaves set status='".$accept."' where id='$ii' " ;
$uresult = mysql_query($updateEmp) or die (mysql_error());
if($uresult != null){
echo "Assignment Added successfully<br>";
?>
<a href="updateassignment.php">View Added Details</a>
<?php
} else {
echo "error";
}
}
}
?>
但是当我跑步时
Notice: Undefined offset: 1
Notice: Undefined offset: 2
.
.
.
.
.
.
像那样。
请帮我解决问题。
在此先感谢
修改
导致异常的新代码是
$iii=0;
while($rows1 = mysql_fetch_array($result1))
{
$iii++;
if( $_POST["accpt".$iii] ) {
echo "accepted ";
$updateEmp = "update applied_leaves set status='".$accept."' where id='$iii' " ;
$uresult = mysql_query($updateEmp) or die (mysql_error());
if($uresult != null){
echo "Assignment Added successfully<br>";
?>
<a href="updateassignment.php">View Added Details</a>
<?php break;
}
}
}
答案 0 :(得分:1)
我认为你的主要错误在于:
<input type="submit" name="<?php $rows1['id']; ?>" value="accept"/>
这里不回显$rows1['id']
,所以如果查看生成的代码,名称应为空。
将此更正为
<input type="submit" name="<?php echo $rows1['id']; ?>" value="accept"/>
此外,在leaveactions.php
中,您有以下代码:
// ...
echo $_POST["$ii"];
if(isset($_POST['$ii'])){
echo "accepted "; echo $_POST['$ii'];
// ...
在执行输出之前,您应先检查变量(此处为$_POST[$ii]
- 否"
是否需要)。
由于上一个错误,$_POST[$ii]
未设置,因此您会在第一个echo
上收到通知,之后再也不会输入if
- 子句。
答案 1 :(得分:0)
这是因为您尝试访问的阵列位置为空(不可用)。使用isset方法检查数组位置是否存在。
if( isset( $array['position'] )
{
//position exists
}
请勿在此处发布您的代码。粘贴与错误相关的行。至少尝试评论发生错误的行。