2011-09-27 16 views
0

私はMySQLテーブルのデータを表示するテーブルを持っています。私は、各エントリのチェックボックスを追加する余分な列を持っています。HTMLテーブルとMySQLテーブルのリンク

MySQLデータを含む列の他のデータとその列の行をリンクすることはできますか?

チェックボックスのエントリは、[保存]ボタンを押すと新しいmysqlテーブルに保存されます。

ここ

は私が何を意味するかをお見せするための画像です:

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) 
     { 
      $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"> 
table, td, th 
{ 
border:1px solid #666; 
font-style:Calibri; 
} 
th 
{ 
background-color:#666; 
color:white; 
font-style:Calibri; 
} 
</style> 
</head> 

    <form method="post" action="admin.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>"; 

     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[]'><option value='all'>All</option> <option value='remote'>Remote Gaming</option> <option value='landbased'>Landbased Gaming</option> <option value='general'>General Gaming</option> </select> </td>"; 
      echo "</tr>" ; 
      } 


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


      echo "</table>"; 

      echo "</center>"; 


     #$_POST['cb_permissions']; 


    mysql_close($connection); 


    ?> 

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

<p style="text-align: right;"> 
    <input name="Save_Btn" type="button" value="Save" /> 


    </p> 


</form> 

すべてのヘルプは親切にいただければ幸いです。

+2

あなたが与えた情報だけです。はい。 –

+0

あなたはもっと説明できますか?私はその質問を理解できませんでした! :D – JellyBelly

+0

Jon Stirlingそして、私はどのようにPHPでそれを行うことができますか?メインの質問を現在のコードで更新しました – Brian

答えて

0

「変更」というタイトルの選択リスト列の後に別の列があるとします。 は、フォームを投稿した

echo "<td> <input type="checkbox" name='fieldName[]' value="<?php echo $row['emp_number']; ?>" > </td>"; 

後$ _POST [「フィールド名」]配列がクリックされた行のIDを持つことになります...この変化のcolum後に別の表のセルを追加します。

値が一意であることを確認するために、$ row ['emp_number']がテーブルのプライマリキーであることを確認してください。

関連する問題