2014-11-02 11 views
2

Я сохраняю значения флажка в промежуточной таблице в шаблоне один ко многим. для обновления значений флажка, как заполнить весь список теми, которые были отмечены, которые хранятся в этой таблице.Извлечь флажки из базы данных

элемент таблицы

+----------+--------------+ 
| item_id | item_name | 
+-------------+-----------+ 
| 1  | A   | 
| 2  | B   | 
| 3  | C   | 
| 4  | D   | 
| 5  | E   | 
+----------+--------------+ 

item_tag

+----------+--------------+ 
    | item_id |  tag_id | 
    +-------------+-----------+ 
    | 1  | 1   | 
    | 1  | 2   | 
    | 2  | 1   | 
    | 2  | 2   | 
    | 2  | 3   | 
    +----------+--------------+ 

tag_table

+----------+--------------+ 
| tag_id |  tag_name | 
+-------------+-----------+ 
| 1  | foo   | 
| 2  | bar   | 
| 3  | foo1   | 
| 4  | bar1   | 
| 5  | foo2   | 
+----------+--------------+ 

ответ

1

Вы должны проверить свой CHEC keď значение с оригинальными флажками, с in_array:

<?php 
    // get the checked items 
    // SELECT * FROM `item_tag` WHERE `item_id` = 2 
    $checkedItems = [1, 2, 3]; 

    // get the checkboxes 
    // SELECT * FROM `tag_table` 
    $checkboxes = [1=>'foo', 2=>'bar', 3=>'foo1', 4=>'bar1', 5=>'foo2']; 
?> 


<?php foreach ($checkboxes as $index => $value): ?> 
    <input 
     type="checkbox" 
     value="<?php echo $index; ?>" 

     <?php if (in_array($index, $checkedItems)): ?> 
      checked="checked" 
     <?php endif; ?> 
    /> 
    <?php echo $value; ?> 
<?php endforeach; ?> 
+0

В первой форме запроса item_tag почему я должен выбрать все, а не только tag_id –

+0

@freaky_coder Потому что вы хотите, чтобы показать все ** ** флажки для пользователя, чтобы позволить пользователь меняет их. – dashtinejad

+0

извлеченные значения не отмечены. –

Смежные вопросы