2011-09-28 6 views
0

두 개의 PHP 페이지가 있습니다 admin_bkp.phpdb_submit.php입니다.콤보 박스가 업데이트되지 않습니다

admin_bkp.php 직원에 대한 사용자 권한을 설정하자와 MySQL의 테이블에 권한을 저장 테이블이 권리라는 사용자를 제공합니다. 직원 정보는 hs_hr_employee에서 수집되어 추가 '사용 권한'열을 사용하여 권한 tog 에테르에 저장됩니다.

처음에는 데이터를 저장할 수 있었고 페이지를 새로 고침 할 때 admin_bkp.php에 이전에 선택했던대로 콤보 상자의 기본값이 표시됩니다.

그러나 이제는 기본 값을 '모두'으로 반환합니다. 이는 원하지 않는 것입니다. 이전에 선택한 값을 표시하고 싶습니다.

이 코드입니다 '저장' 버튼

을 클릭시 값을 저장admin_php.bkp : admin_bkp.php

<?php 

$connection = mysql_connect('localhost','admin','root'); 

if(isset($_POST['submit'])) 
{ 
    if(isset($_POST['cb_change']) && is_array($_POST['cb_change'])) 
    { 
     foreach($_POST['cb_change'] as $emp_number => $permission) 
     {  
echo "$permission"; 
      $sql = "UPDATE `rights` SET Permission='".mysql_real_escape_string($permission)."' WHERE emp_number='".mysql_real_escape_string($emp_number)."'"; 
      echo __LINE__.": sql: {$sql}\n"; 
      mysql_query($sql); 
     } 
    } 
} 
?> 
<p style="text-align: center;"> 
    <span style="font-size:36px;"><strong><span style="font-family: trebuchet ms,helvetica,sans-serif;"><span style="color: rgb(0, 128, 128);">File Database - Administration Panel</span></span></strong></span></p> 
<p style="text-align: center;"> 
    &nbsp;</p> 

<head> 
<style type="text/css"> 
/* 
http://icant.co.uk/csstablegallery/index.php?css=71 

Data Tables and Cascading Style Sheets Gallery 
Title: Casablanca 
Author: RODrigo CASTilho Galv?o Ferreira - RODCAST 
URL: http://www.rodcast.com.br 
Update: 04/04/2008 10:51 AM 
*/ 
body{ 
background: url('bg.gif'); 
} 
table { 
    color: #666; 
    font: 0.8em/1.6em "Trebuchet MS",Verdana,sans-serif; 
    border-collapse: collapse; 
    background: #fff; 
} 

table,caption { 
    margin: 0 auto; 
    border-right: 0px solid #CCC; 
    border-left: 0px solid #CCC;  

} 

caption,th,td { 
    border-left: 0; 
    padding: 10px; 

} 

caption,thead th,tfoot th,tfoot td { 
    background-color: #216dab; 
    color: #FFF; 
    font-weight: bold; 
    text-transform: uppercase 
} 

thead th { 
    background-color: #666; 
    color: #fff; 
    text-align: center 
} 

tbody th { 
    padding: 20px 10px 
} 

tbody tr.odd { 
    background-color: #F7F7F7; 
    color: #666; 

} 

tbody a { 
    padding: 1px 2px; 
    color: #fff; 
    text-decoration: none; 
    border-bottom: 1px dotted #E63C1E; 
    background: #7bafd9; 
} 

tbody a:active,tbody a:hover,tbody a:focus,tbody a:visited { 
    color: #fff; 

} 

tbody tr:hover { 
    background-color: #EEE; 
    color: #333 
} 

tbody tr:hover a { 
    /*background-color: #FFF*/ 
    color:fff; 
} 

tbody td+td+td+td a { 
    color: #fff; 
    font-weight: bold; 
    border-bottom: 0; 

} 

tbody td+td+td+td a:active,tbody td+td+td+td a:hover,tbody td+td+td+td a:focus,tbody td+td+td+td a:visited { 
    color: #fff 
} 

tbody td a[href="http://www.rodcast.com.br/"] { 
    margin: 0 auto; 
    display: block; 
    width: 15px; 
    height: 15px; 
    background: transparent url('data:image/gif;base64,R0lGODlhDwAPAIAAACEpMf///yH5BAAAAAAALAAAAAAPAA8AAAIjjA8Qer0JmYvULUOlxXEjaEndliUeA56c97TqSD5pfJnhNxYAOw%3D%3D') no-repeat; 
    text-indent: -999em; 
    border-bottom: 0; 

} 

tbody a:visited:after { 
    font-family: Verdana,sans-serif; 
    content: "\00A0\221A" 
} 
</style> 
</head> 

    <form method="post" action="db_submit.php"> 

    <?php 


     if (!$connection) 
      { 
      die('Could not connect: ' . mysql_error()); 
      } 

     mysql_select_db('users', $connection); 

     #mysql_query('INSERT into rights(Emp_num, ID, Name, Surname) SELECT emp_number, employee_id, emp_firstname, emp_lastname FROM hs_hr_employee'); 


     $result = mysql_query("SELECT emp_number, employee_id, emp_firstname, emp_lastname, Permissions FROM rights"); 

     mysql_query("INSERT INTO rights (emp_number, employee_id, emp_firstname, emp_lastname) 
        SELECT emp_number, employee_id, emp_firstname, emp_lastname 
        FROM hs_hr_employee 
        ON DUPLICATE KEY UPDATE employee_id = VALUES(employee_id), emp_number = VALUES(emp_number) 
        "); 

     $duplicates = mysql_query("SELECT emp_number, employee_id, emp_firstname, emp_lastname, count(*) FROM rights GROUP BY emp_number, employee_id, emp_firstname, emp_lastname having count(*) > 1"); 

     $count = mysql_num_rows($duplicates); 

     if ($count > 0) { 
     while ($row = mysql_fetch_assoc($duplicates)) { 
     $field = $row["emp_number"]; 
     $limit = $row["count(*)"] - 1; 
     mysql_query("DELETE FROM rights WHERE emp_number='$field' LIMIT $limit"); 
     } 
     mysql_free_result($duplicates); 
     }   


     echo "<center>"; 
     /* 
     echo "  
     <table > 
     <tr> 
     <th>Employee Number</th> 
     <th>ID</th> 
     <th>Name</th> 
     <th>Surname</th> 
     <th>Permissions</th> 
     <th>Change</th> 
     </tr>"; */ 

     echo "  
     <table > 
     <tr> 
     <th>Employee Number</th> 
     <th>ID</th> 
     <th>Name</th> 
     <th>Surname</th>   
     <th>Permissions</th> 
     </tr>"; 

     while($row = mysql_fetch_array($result)) 
      { 
      echo "<tr>"; 
      echo "<td>" . $row['emp_number'] . "</td>"; 
      echo "<td>" . $row['employee_id'] . "</td>"; 
      echo "<td>" . $row['emp_firstname'] . "</td>"; 
      echo "<td>" . $row['emp_lastname'] . "</td>"; 
      #echo "<td>" . $row['Permissions'] . "</td>"; 



      echo "<td> 
         <select> 
         <option value='All'>All</option> 
         <option value='Remote Gaming' selected='selected'>Remote Gaming</option> 
         <option value='Landbased Gaming'>Landbased Gaming</option> 
         <option value='General Gaming'>General Gaming</option> 
         </select> 
        </td> 
        "; 
      echo "</tr>" ; 
      echo "<input type='hidden' name='emp_id[]' value='". $row['employee_id'] ."'>"; 
      } 


     $selected = $row['Permissions']; 
      $options = array(
       "Remote Gaming", 
       "Landbased Gaming", 
       "General Gaming" 
      ); 


      foreach ($options as $option){ 
       if($option == $selected){ 
       echo "<option value='$option' selected='selected'>$option</option>"; 
       }else{ 
       echo "<option value='$option'>$option</option>"; 
       } 
      } 
      #echo "<td>" . $row['Change'] . "</td>"; 

      echo "</table> 
        <p style='text-align: right;'> 
         <input name='Save_Btn' type='Submit' value='Save' /> 
        </p> 

       </center>"; 

    mysql_close($connection); 

    ?> 

<p style="text-align: center;"> 
    &nbsp;</p> 
<p style="text-align: center;"> 
    &nbsp;</p> 

</form> 

db_submit.php :

<html> 
<body> 
<p>Data submitted successfully.</p> 

<?php 

$connection = mysql_connect('localhost','admin','root'); 
mysql_select_db('users', $connection); 

$cbchange = $_POST['cb_change']; 
$emp_id = $_POST['emp_id']; 

foreach($cbchange as $a => $b){ 
    echo $cbchange[$a] ." - ". $emp_id[$a]; 
    echo "<br/>"; 

    $query = " 

       UPDATE `rights` 
       SET `rights`.`Permissions`='".$cbchange[$a]."' 
       WHERE `rights`.`employee_id`='".$emp_id[$a]."' 
       "; 
    mysql_query($query); 
} 

?> 
</body> 
</html> 

다음은 설치에 대한 일반적인 아이디어를 제공하는 몇 가지 이미지입니다.

enter image description here enter image description here

원본 코드 :

<?php 

$connection = mysql_connect('localhost','admin','root'); 

if(isset($_POST['submit'])) 
{ 
    if(isset($_POST['cb_change']) && is_array($_POST['cb_change'])) 
    { 
     foreach($_POST['cb_change'] as $emp_number => $permission) 
     {  
echo "$permission"; 
      $sql = "UPDATE `rights` SET Permission='".mysql_real_escape_string($permission)."' WHERE emp_number='".mysql_real_escape_string($emp_number)."'"; 
      echo __LINE__.": sql: {$sql}\n"; 
      mysql_query($sql); 
     } 
    } 
} 
?> 
<p style="text-align: center;"> 
    <span style="font-size:36px;"><strong><span style="font-family: trebuchet ms,helvetica,sans-serif;"><span style="color: rgb(0, 128, 128);">File Database - Administration Panel</span></span></strong></span></p> 
<p style="text-align: center;"> 
    &nbsp;</p> 

<head> 
<style type="text/css"> 
/* 
http://icant.co.uk/csstablegallery/index.php?css=71 

Data Tables and Cascading Style Sheets Gallery 
Title: Casablanca 
Author: RODrigo CASTilho Galv?o Ferreira - RODCAST 
URL: http://www.rodcast.com.br 
Update: 04/04/2008 10:51 AM 
*/ 
body{ 
background: url('bg.gif'); 
} 
table { 
    color: #666; 
    font: 0.8em/1.6em "Trebuchet MS",Verdana,sans-serif; 
    border-collapse: collapse; 
    background: #fff; 
} 

table,caption { 
    margin: 0 auto; 
    border-right: 0px solid #CCC; 
    border-left: 0px solid #CCC;  

} 

caption,th,td { 
    border-left: 0; 
    padding: 10px; 

} 

caption,thead th,tfoot th,tfoot td { 
    background-color: #216dab; 
    color: #FFF; 
    font-weight: bold; 
    text-transform: uppercase 
} 

thead th { 
    background-color: #666; 
    color: #fff; 
    text-align: center 
} 

tbody th { 
    padding: 20px 10px 
} 

tbody tr.odd { 
    background-color: #F7F7F7; 
    color: #666; 

} 

tbody a { 
    padding: 1px 2px; 
    color: #fff; 
    text-decoration: none; 
    border-bottom: 1px dotted #E63C1E; 
    background: #7bafd9; 
} 

tbody a:active,tbody a:hover,tbody a:focus,tbody a:visited { 
    color: #fff; 

} 

tbody tr:hover { 
    background-color: #EEE; 
    color: #333 
} 

tbody tr:hover a { 
    /*background-color: #FFF*/ 
    color:fff; 
} 

tbody td+td+td+td a { 
    color: #fff; 
    font-weight: bold; 
    border-bottom: 0; 

} 

tbody td+td+td+td a:active,tbody td+td+td+td a:hover,tbody td+td+td+td a:focus,tbody td+td+td+td a:visited { 
    color: #fff 
} 

tbody td a[href="http://www.rodcast.com.br/"] { 
    margin: 0 auto; 
    display: block; 
    width: 15px; 
    height: 15px; 
    background: transparent url('data:image/gif;base64,R0lGODlhDwAPAIAAACEpMf///yH5BAAAAAAALAAAAAAPAA8AAAIjjA8Qer0JmYvULUOlxXEjaEndliUeA56c97TqSD5pfJnhNxYAOw%3D%3D') no-repeat; 
    text-indent: -999em; 
    border-bottom: 0; 

} 

tbody a:visited:after { 
    font-family: Verdana,sans-serif; 
    content: "\00A0\221A" 
} 
</style> 
</head> 

    <form method="post" action="db_submit.php"> 

    <?php 


     if (!$connection) 
      { 
      die('Could not connect: ' . mysql_error()); 
      } 

     mysql_select_db('users', $connection); 

     #mysql_query('INSERT into rights(Emp_num, ID, Name, Surname) SELECT emp_number, employee_id, emp_firstname, emp_lastname FROM hs_hr_employee'); 


     $result = mysql_query("SELECT emp_number, employee_id, emp_firstname, emp_lastname, Permissions FROM rights"); 

     mysql_query("INSERT INTO rights (emp_number, employee_id, emp_firstname, emp_lastname) 
        SELECT emp_number, employee_id, emp_firstname, emp_lastname 
        FROM hs_hr_employee 
        ON DUPLICATE KEY UPDATE employee_id = VALUES(employee_id), emp_number = VALUES(emp_number) 
        "); 

     $duplicates = mysql_query("SELECT emp_number, employee_id, emp_firstname, emp_lastname, count(*) FROM rights GROUP BY emp_number, employee_id, emp_firstname, emp_lastname having count(*) > 1"); 

     $count = mysql_num_rows($duplicates); 

     if ($count > 0) { 
     while ($row = mysql_fetch_assoc($duplicates)) { 
     $field = $row["emp_number"]; 
     $limit = $row["count(*)"] - 1; 
     mysql_query("DELETE FROM rights WHERE emp_number='$field' LIMIT $limit"); 
     } 
     mysql_free_result($duplicates); 
     }   


     echo "<center>"; 
     /* 
     echo "  
     <table > 
     <tr> 
     <th>Employee Number</th> 
     <th>ID</th> 
     <th>Name</th> 
     <th>Surname</th> 
     <th>Permissions</th> 
     <th>Change</th> 
     </tr>"; */ 

     echo "  
     <table > 
     <tr> 
     <th>Employee Number</th> 
     <th>ID</th> 
     <th>Name</th> 
     <th>Surname</th>   
     <th>Permissions</th> 
     </tr>"; 

     while($row = mysql_fetch_array($result)) 
      { 
      echo "<tr>"; 
      echo "<td>" . $row['emp_number'] . "</td>"; 
      echo "<td>" . $row['employee_id'] . "</td>"; 
      echo "<td>" . $row['emp_firstname'] . "</td>"; 
      echo "<td>" . $row['emp_lastname'] . "</td>"; 
      #echo "<td>" . $row['Permissions'] . "</td>"; 

      echo "<td> <select name='cb_change[]' SELECTED VALUE=".$row['Permissions']."> 
      <option value='All'>All</option> 
      <option value='Remote Gaming'>Remote Gaming</option> 
      <option value='Landbased Gaming'>Landbased Gaming</option> 
      <option value='General Gaming'>General Gaming</option> 
      </select> </td>"; 
      echo "</tr>" ; 
      echo "<input type='hidden' name='emp_id[]' value='". $row['employee_id'] ."'>"; 
      } 

      #echo "<td>" . $row['Change'] . "</td>"; 

      echo "</table> 
        <p style='text-align: right;'> 
         <input name='Save_Btn' type='Submit' value='Save' /> 
        </p> 

       </center>"; 

    mysql_close($connection); 

    ?> 

<p style="text-align: center;"> 
    &nbsp;</p> 
<p style="text-align: center;"> 
    &nbsp;</p> 

</form> 

당신이 친절하게 올바른 방향으로 날 포인트?

답변

1

올바른 값이 데이터베이스에 표시되는 경우 문제는 다른 쪽 끝에 데이터를 표시하는 것입니다. 내가 이해하는 바에 따르면, 현재 선택된 권한이 '선택됨'으로 설정된 HTML 선택 상자에서 권한 목록을 출력하고 싶습니다. 맞습니까?

이 그렇다면, 여기에 코드 :

echo "<td> <select name='cb_change[]' SELECTED VALUE=".$row['Permissions']."> 
<option value='All'>All</option> 
<option value='Remote Gaming'>Remote Gaming</option> 
<option value='Landbased Gaming'>Landbased Gaming</option> 
<option value='General Gaming'>General Gaming</option> 
</select></td>"; 

잘못입니다. <option> 값을 현재 선택한 값과 일치시킨 다음 속성을 지정해야합니다.

예 : 작동합니다

$selected = $row['Permissions']; 
$options = array(
    "Remote Gaming", 
    "Landbased Gaming", 
    "General Gaming" 
); 
foreach ($options as $option){ 
    if($option == $selected){ 
    echo "<option value='$option' selected='selected'>$option</option>"; 
    }else{ 
    echo "<option value='$option'>$option</option>"; 
    } 
} 

.

최종 편집

다음 코드는 '코드'표시는 아래에 배치해야합니다 :

echo "  
    <table > 
    <tr> 
    <th>Employee Number</th> 
    <th>ID</th> 
    <th>Name</th> 
    <th>Surname</th>   
    <th>Permissions</th> 
    </tr>"; 

코드 :

그래서
$options = array(
     "All", 
     "Remote Gaming", 
     "Landbased Gaming", 
     "General Gaming" 
    ); 

    while($row = mysql_fetch_array($result)) 
    { 
     echo "<tr>"; 
     echo "<td>" . $row['emp_number'] . "</td>"; 
     echo "<td>" . $row['employee_id'] . "</td>"; 
     echo "<td>" . $row['emp_firstname'] . "</td>"; 
     echo "<td>" . $row['emp_lastname'] . "</td>"; 
     #echo "<td>" . $row['Permissions'] . "</td>"; 
     echo "<td> <select name='cb_change[]'>"; 
     foreach($options as $option){ 
      if($option == $row['Permissions']){ 
       echo "<option value='" . $option . "' selected='selected'>". $option ."</option>"; 
      }else{ 
       echo "<option value='" . $option . "'>". $option ."</option>"; 
      } 
     } 
     echo "</select> </td>"; 
     echo "</tr>" ; 
     echo "<input type='hidden' name='emp_id[]' value='". $row['employee_id'] ."'>"; 
    } // end while 
+0

나는 기본적으로 하나의 코드의 조각을 대체 너 나 줬어? – Brian

+0

내가 시도한 것은 이것이지만 여러 개의 콤보 박스를 보여주고 있는데, 내가 원하지 않는 것입니다. 내가 원하는 것은 기본적으로 이전에 선택된 옵션을 표시하는 콤보 박스입니다. 내가 한 일을보기 위해 주 질문에서 코드를 업데이트했습니다. – Brian

+1

내가 준 코드는 배열에 저장된 각 권한을 통해 반복되고 각 요소에 대해