-2

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;                  
                    }

                }

                }
4

2 に答える 2

1

あなたの主なエラーはここにあると思います:

<input type="submit" name="<?php $rows1['id']; ?>" value="accept"/>

ここでは echo を使用しない$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]が設定されていないため、最初に通知が表示され、その後 -clauseechoを入力することはありません。if

于 2013-02-11T10:44:14.613 に答える
0

アクセスしようとしている配列の位置が空(利用できない)であるためです。issetメソッドを使用して、配列位置が存在するかどうかを確認します。

if( isset( $array['position'] )
{
  //position exists
}

ここにコードを投稿しないでください。エラーに関連する行を貼り付けます。少なくとも、エラーが発生した行にコメントを付けてみてください。

于 2013-02-11T10:12:13.980 に答える