Передача переменной счетчика динамически - PullRequest
3 голосов
/ 02 июня 2010
'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. Значение последнего имени активности передается каждый раз. Так что значение старого имени активности для любой строки является последним значением таблицы 'имя_акта'. Пожалуйста, помогите мне передать соответствующее значение счетчика для любого имени деятельности.

1 Ответ

1 голос
/ 02 июня 2010

Это беспорядок.

Если вы хотите идентифицировать определенные строки из таблицы, то это следует сделать с помощью первичного ключа или уникального суррогатного ключа. Никогда, НИКОГДА не используйте счетчик / rownum / offset.

  • Даже если вы форсируете ORDER BY (какой-то уникальный ключ).

  • Даже если у вас есть транзакция, охватывающая операции выбора и обновления (что в любом случае невозможно, если они происходят на отдельных страницах)

С

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...