从php的sql表中更新字段

问题描述:

我有一个包含更多列的表。在一列上,每行有3个按钮,并有不同的查询关联。当我单击其中一个按钮时,我的数据库中的表中的字段应该更新。问题是,当我单击表中任何一行上的按钮时,它只更新第一行中的字段。例如,我有一个有10行的表格。如果我点击第10行的其中一个按钮,IT会更新我的第一行,而不是第10行。有没有可能解决这个问题? 这是code..I'm对不起太长:从php的sql表中更新字段

<?php 
$query = "SELECT * FROM masculin ORDER BY id_concurent"; 
      $result = mysqli_query($link ,$query); 
    $row = mysqli_fetch_assoc($result); 

    if(isset($_POST['locul1'])) 
    { 
     $sql = "UPDATE masculin SET Premiu=1 WHERE CNP='".$row['CNP']."'";  
     mysqli_query($link,$sql); 
     header("Location:administrare.php"); 
    } 
    else if(isset($_POST['locul2'])) 
    { 
     $sql = "UPDATE masculin SET Premiu=2 WHERE CNP='".$row['CNP']."'"; 

     mysqli_query($link,$sql); 
     header("Location:administrare.php"); 
    } 
    else if(isset($_POST['locul3'])) 
    { 
     $sql = "UPDATE masculin SET Premiu=3 WHERE CNP='".$row['CNP']."'";  
     mysqli_query($link,$sql); 
     header("Location:administrare.php"); 
    } ?> 

<u><i><h1 align="center">Administrare concurenti</h1></i></u> 
<u><i><h2>MASCULIN</h2></i></u> 

<?php 
      $query = "SELECT * FROM masculin ORDER BY id_concurent"; 
      $result = mysqli_query($link ,$query); 
      if (mysqli_num_rows($result) == 0) { 
        echo 'Inca nu s-a inscris niciun concurent.'; 
      } else { 
     ?> 
<table width="100%"> 
    <tr> 
     <th>Nr.<br />concurs</th> 
     <th>Nume</th> 
     <th>Prenume</th> 
     <th>CNP</th> 
     <th>Categoria</th> 
     <th>Varsta</th> 
     <th>Premiu</th> 
     <th>Modifica<br />rezultat</th> 
     <th>Descalifica</th> 
    </tr> 
     <?php while($row = mysqli_fetch_assoc($result)){ ?> 
     <tr> 
      <?php 
      $query1="SELECT id_concurent FROM concurenti WHERE CNP='".$row['CNP']."'"; 
       $result1=mysqli_query($link,$query1); 
       $nr_conc=mysqli_fetch_assoc($result1); 
      ?> 
      <td> <?php echo $nr_conc['id_concurent'] ?> </td> 
      <td> <?php echo $row['Nume'] ?> </td> 
      <td> <?php echo $row['Prenume'] ?> </td> 
      <td> <?php echo $row['CNP'] ?> </td> 
      <td> <?php echo $row['Categorie'] ?> </td> 
      <td> <?php echo $row['Varsta'] ?> </td> 
      <td> <?php echo $row['Premiu'] ?> </td>   
      <td> 
      <form action="administrare.php" method="post">   
       <input type="submit" name="locul1" value="Premiul 1"> 
       <input type="submit" name="locul2" value="Premiul 2"> 
       <input type="submit" name="locul3" value="Premiul 3">  
      </form>   
      </td> 
     </tr> 
      <?php } ?> 
    </table>  <?php } ?> 
+0

这是$行[“CNP”]内容的岗位价值??? – scaisEdge

+0

那么,那是我不知道写什么条件的地方。 $ row ['CNP']每次从第一行获取值...但我需要对应于按钮的行的值.. :( – Andrew

+0

我已经发布了一个答案,希望是明确的 – scaisEdge

用于更新DA tbale排当您提交相关的HTML表行,你应该添加和隐藏的输入与值的数值是让你达到正确的行如:

<form action="administrare.php" method="post">   
     <input type="submit" name="locul1" value="Premiul 1"> 
     <input type="submit" name="locul2" value="Premiul 2"> 
     <input type="submit" name="locul3" value="Premiul 3">  
     <input type="hidden" name="CNP" value="<?php echo $row['CNP'] ?>"> 
    </form> 

,并在您的SQL查询更新添加相关的行

$sql = "UPDATE masculin SET Premiu=1 WHERE CNP='".$_POST['CNP']. "'"; 
+0

它的工作,谢谢很多!:) – Andrew

+0

@Andrew好,如果我的回答是正确的,请将其标记为已接受...看看这里如何 http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-工作 – scaisEdge