'view_act.php' file

<?php


  $query = mysql_query('select * from activities');
   $check=mysql_num_rows($query);
  if($check==0)
   {
   echo "No enteries found ";
   }

  else
  {
     static $counter;
     echo '<table border="1" cellpadding="5" cellspacing="5" align="center">

      <tr>

      <th><font color="#FF9900">ACTIVITY NAME</font></th>
      <th><font color="#FF9900">ACTIVITY UPDATE</font></th>
     </tr>';
     while($row=mysql_fetch_array($query))
     { $counter++;


           echo '<tr>';

           echo '<td width=231>
      <form action="update_act.php" method="POST">';

       echo "<center><font color=\"#CC9900\">".$row['act_name']."</center>";


      echo "</td>
      <td width=231>";
      echo "<center>".'<font color="#CCCCCC"><input type="submit" name="edit"                                 value="edit"></center>';
      echo '<input type="hidden" name="act_name'.$counter.'" value="'.$row['act_name'].'" />';
      echo '<input type="hidden" name="count" value="'.$counter.'" />';


      echo "</td>
       </tr>";
     }
     echo "</form>";
    echo "</table>";


  }

 ?>


'update_act.php' file

 <?php
      $count=$_POST['count'];
  echo "Old Activity Name : ". $_POST["act_name".$count];
  echo '<br/>Enter new activity name :
       <form action="update_act.php" method="post">
          <input type="text" name="aname">
     <input type="submit" name="submit">';
  ?>

这里从表中获取的数据必须通过一个不同的编辑按钮的名称来更新,因此对于每个活动名称,计数器都会给出一个不同的名称。但是这里的问题是,当表单提交到update_act.php页面时,每次都会传递最后一个活动名称的值。因此,任何行的旧活动名称的值都是最后一个值“Act_name”表的值。请帮助我传递任何活动名称对应的计数器值。

最佳答案

真是一团糟。
如果要标识表中的特定行,则应该对主键或唯一的代理项键执行此操作。从不,从不使用counter/rownum/offset。
即使你用(某个唯一的键)强制订货也不行。
即使您有一个跨越select和update的事务(如果它们出现在单独的页面上,这是不可能的)。
C.

关于php - 动态传递计数器变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2957193/

10-12 12:28
查看更多