2017-04-07 102 views
1

我有一個包含更多列的表。在一列上,每行有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

回答

0

用於更新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