- отредактировано для ясности.
База данных:
tblModule , содержит список модулей, которые можно включить или отключить.
tblData , содержит список доверительных отношений и модулей, которые они включили. Это ссылки на tblModule на tblData.M01 = tblModule.mod_key
Страница PHP доступна с индексной страницы и передает на эту страницу переменную lstModTrust , чтобы ограничить количество возвращаемых записей из tblData для одного доверия. tblData.trust_key
Запускается запрос, qryModuleList , который возвращает список всех модулей. Это используется для генерации таблицы всех доступных модулей. В каждой строке отображается имя модуля tblModules.mod_name , код модуля tblModules.mod_code и флажок.
qryModData вернет список модулей, которые включены для одного доверия, и соответствующие флажки должны быть отмечены в таблице.
Эта страница будет затем использоваться для включения и выключения модулей для доверия. Если модуль не отмечен, запись будет удалена из tblData , если отмечена, будет вставлена запись, и если нет изменений, то никаких изменений в БД.
В настоящее время у меня возникают проблемы с установкой флажков на основе 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>
Затем есть два SQL-запроса, один из которых генерирует список для построения таблицы, а второй, который я пытаюсь использовать для установки флажков.
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 } ; ?>