代码之家  ›  专栏  ›  技术社区  ›  Satish

动态传递计数器变量

  •  3
  • Satish  · 技术社区  · 16 年前
    '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.php时,每次都会传递上一个活动名称的值。因此,任何行的旧活动名称的值都是最后一个值。表'act_name'的值。请帮助我传递任何活动名称对应的计数器值。

    1 回复  |  直到 16 年前
        1
  •  1
  •   symcbean    16 年前

    这是一团糟。

    如果要从表中标识特定的行,那么应该在主键或唯一的代理键上进行标识。绝不要使用counter/rownum/offset。

    • 即使您强制一个订单(某个唯一的键)。

    • 即使您有一个跨越选择和更新的事务(如果它们发生在单独的页面上,则不可能发生这种情况)

    C.

    推荐文章