2017-03-15 63 views
0

我在PHP中编码 - 我的SQL。我有一张名为tbl_pers的表格,其中包含员工的个人详细信息。我有另一个表tbl_group,它有一个分配给每个类型组的号码(每个GpTitle都有一个GpCode)。所以在tbl_pers表中保存了与tbl_group中定义的组对应的编号。当我尝试更新使用在PHP中写入的形式的tbl_pers时,它更新正常,但如果我更新表单而未做任何更改,它会在tbl_pers表中保存一个空值。我希望它保存最初定义的值。 请帮助通过在php表单中的下拉菜单更新字段

的代码给出下,

<!DOCTYPE> 
<?php 
include("includes/db.php"); 
if(isset($_GET['urlvar_edit_pers'])){ 

    $get_id=$_GET['urlvar_edit_pers']; 
    $get_pers="select * from tbl_pers where pNo='$get_id'"; 
    $run_query=mysqli_query($con, $get_pers); 
    $i=0; 

    $row_pers=mysqli_fetch_array($run_query); 

     $pNo=$row_pers['pNo']; 
     $GpCode=$row_pers['GpCode']; 
      $get_group="select * from tbl_group where GpCode='$GpCode'"; 
      $run_group=mysqli_query($con, $get_group); 
      $row_group=mysqli_fetch_array($run_group); 
      $GpTitle=$row_GpCode['GpTitle']; 

     $i++;  
} 
?> 

<html> 
<div id="page-wrapper"> 
    <h3>Update Pers Record</h3> 

    <div class="tab-content"> 
    <div class="tab-pane active" id="horizontal-form"> 
    <form action="" class="form-horizontal" method="post" enctype="multipart/form-data"> 

    <div class="form-group"> 
     <label for="txt_pNo" class="col-sm-2 control-label">Personal Number</label> 
     <div class="col-sm-2"><input type="text" name="txt_pNo" class="form-control1" id="txt_pNo" value="<?php echo $pNo;?>" placeholder="Personal Number"></div> 
     <div class="col-sm-8"><p class="help-block">Enter without any spaces.</p></div> 
    </div> 


    <!--Dropdown Dynamic List--> 
    <div class="form-group"> 
     <label for="sel_GpCode" class="col-sm-2 control-label">Group</label> 
     <div class="col-sm-2"> 
     <select name="sel_GpCode" id="sel_GpCode" value="<?php echo $GpCode;?> class="form-control1"> 
      <option><?php echo $GpTitle;?></option> 
      <?php 
       $get_GpCode="select * from tbl_group"; 
       $run_GpCode=mysqli_query($con, $get_GpCode); 
       while($row_GpCode=mysqli_fetch_array($run_GpCode)){ 
        $GpCode=$row_GpCode['GpCode']; 
        $GpTitle=$row_GpCode['GpTitle']; 
        echo"<option value='$GpCode'>$GpTitle</option>"; 
       } 
      ?> 
      </select> 

     </div> 
    </div> 

<div class="bs-example" data-example-id="form-validation-states-with-icons"> 
<form> 

     <div class="col-sm-8 col-sm-offset-2"> 
      <button class="btn-success btn" name="btn_update">Submit</button> 
     </div> 
</form> 
</div> 

</form> 

    </div> 
    </div> 
</div> 
</html> 

<?php 
if(isset($_POST['btn_update'])){ 

    //getting the text data from the fields 
    $update_id = $pNo; 
    $GpCode=$_POST['sel_GpCode']; 

$update_pers = "update tbl_pers set GpCode='$GpCode' where pNo='$update_id'"; 
$run_query = mysqli_query($con, $update_pers); 

    if($run_query){ 
     echo"<script>alert('Person has been updated.')</script>"; 
     echo"<script>window.open('view_pers.php','_self')</script>"; 
    } 
    else{ 
     echo"<script>alert('Could not add.')</script>"; 
    } 
} 
?> 
+0

欢迎来到SO。如果您想要为您的问题添加相关信息,请不要发表评论。相反,你应该编辑你的问题,以便所有的细节都在一个地方。请编辑您的问题并删除您的评论。 – mickmackusa

回答

0

你必须使用这两个步骤。

  1. 在while循环中重命名$ GpCode。让我们说$ GpCodeloop。
  2. 在下拉选项中选择使用。
  3. 对更新查询应用检查。

    <option value='$GpCodeloop' <?php if($GpCode==$GpCodeloop){echo "selected='selected'";} ?>selected="selected">$GpTitle</option>

    如果{$ = update_pers “更新设置的GpCode = '$的GpCode' tbl_pers其中PNO = '$ UPDATE_ID'”(空($的GpCode)!); $ run_query = mysqli_query($ con,$ update_pers); }

+0

抱歉Mahmood,代码没有工作。我对PHP很陌生,所以我会请求你是否可以告诉我细节。 – Manna