-- わかりやすくするために編集しました。
データベース:
tblModuleには、有効または無効にできるモジュールのリストが含まれています。 tblDataには、信頼とそれらが有効にしたモジュールのリストが含まれています。これはtblData.M01 = tblModule.mod_keyのtblModuleにリンクします
PHP ページはインデックス ページからアクセスされ、変数lstModTrustをこのページに渡して、tblData から返されるレコードを 1 つのトラストに制限します。tblData.trust_key
すべてのモジュールのリストを返すクエリqryModuleListが実行されます。これは、利用可能なすべてのモジュールのテーブルを生成するために使用されます。各行には、モジュール名tblModules.mod_name、モジュール コード tblModules.mod_code、およびチェックボックスが表示されます。
qryModDataは、単一の信頼に対して有効になっているモジュールのリストを返します。テーブルで対応するチェックボックスをオンにする必要があります。
このページは、信頼のモジュールを有効または無効にするために使用されます。モジュールがチェックされていない場合、エントリはtblDataから削除され、チェックされている場合はエントリが挿入され、変更がない場合は DB に変更はありません。
現時点では、qryModDataに基づいてチェックボックスを正しくチェックするのに問題があります。
誰か考えはありますか?
-- コードを含めるように編集 --
<table width="50%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>Module</td>
<td>Module Code</td>
<td> </td>
</tr>
<?php do { ?>
<tr>
<td><?php echo $row_qryModuleList['mod_name']; ?></td>
<td><?php echo $row_qryModuleList['mod_code']; ?></td>
<td><input <?php if (!(strcmp($row_qryModData['M01'],$row_qryModuleList['mod_code']))) {echo "checked=\"checked\"";} ?>name="chkMod" type="checkbox" id="chkMod" value="<?php echo $row_qryModData['M01']; ?>" /></td>
</tr>
<?php } while ($row_qryModuleList = mysql_fetch_assoc($qryModuleList)); ?>
</table>
次に、2 つの SQL クエリがあります。1 つはテーブルを構築するためのリストを生成するクエリで、もう 1 つはチェックボックスをオンにするために使用しようとしているクエリです。
qryModuleList
SELECT *
FROM tblmodules
ORDER BY mod_name ASC
qryModData
SELECT *
FROM tbldata
WHERE trust_key = varTrust
varTrust は URL 変数から取得されます。
最初にコードを含めなかったことをお詫びします。
-- 新しいコードを編集します。
<?php while ($row_qryModuleList = mysql_fetch_assoc($qryModuleList)) { ?>
<tr>
<td><?php echo $row_qryModuleList['mod_name']; ?></td>
<td><?php echo $row_qryModuleList['mod_code']; ?></td>
<td><input <?php if (strcmp($row_qryModData['M01'],$row_qryModuleList['mod_key']) != 0) {echo "checked=\"checked\"";} ?>name="chkMod" type="checkbox" id="chkMod" value="<?php echo $row_qryModData['M01']; ?>" /></td>
</tr>
<?php } ; ?>
-- 新しいコード用に編集。
<tr class="tblHead">
<td>Module</td>
<td>Module Code</td>
<td>Enabled\Disabled</td>
</tr>
<?php
$mod_data = array();
while ($row_qryModData = mysql_fetch_assoc($qryModData))
array_push($mod_data, $row_qryModData['M01']);
$currentRow = 0;
while ($row_qryModuleList = mysql_fetch_assoc($qryModuleList)) {
?>
<tr bgcolor="<?php echo($currentRow++ % 2)?"#CCFFFF":"#FFCCFF";?>">
<td><?php echo $row_qryModuleList['mod_name']; ?></td>
<td><?php echo $row_qryModuleList['mod_code']; ?></td>
<td><input <?php if (false !== (array_search($mod_data, $row_qryModuleList['mod_key']))) echo "checked=\"checked\""; ?> name="chkMod" type="checkbox" id="chkMod" value="<?php echo $row_qryModData['M01']; ?>" /></td>
</tr>
<?php } ; ?>