2015-01-21 3 views
0

У меня есть всплывающее меню, которое хранит данные в массиве и вставляет через serialize() в базу данных. Интересно, как я могу вернуть эти данные в свои флажки, отмеченные как изображение. Кто-нибудь может мне помочь?Foreach сериализованный Dropdown Multiselect из базы данных

Dropdown Multiselect

Вставка:

$sql = "INSERT INTO programacao 
    (programacao_id, painel_id, palestrante_id, tipo_programacao_id, dia,hora_inicio,hora_fim, palestrantes, imagem,cor_fundo,ativo) 
    VALUES 
    (:programacao_id, :painel_id, :palestrante_id, :tipo_programacao_id, :dia,:hora_inicio,:hora_fim,:palestrantes, :imagem,:cor_fundo,:ativo)"; 
    $dadosBind = array(
    'programacao_id' => $novo_id, 
    'painel_id' => $painel_id, 
    'palestrante_id' => $palestrante_id, 
    'tipo_programacao_id' => $tipo_programacao_id, 
    'dia' => $uteis->dataBr2Bd($dia), 
    'hora_inicio' => $hora_inicio, 
    'hora_fim' => $hora_fim, 
    'palestrantes' => serialize($palestrantes), 
    'imagem' => (isset($nome_final_foto))?$nome_final_foto :'', 
    'cor_fundo' => $cor_fundo, 
    'ativo' => $ativo 
); 
    $insertProgramacao = $db->ubQuery($sql, $dadosBind); 

Листинг:

$sql = "SELECT palestrantes.palestrante_id, palestrantes.nome FROM palestrantes INNER JOIN programacao 
      ON palestrantes.palestrante_id = programacao.palestrante_id WHERE programacao.programacao_id = $programacao_id AND palestrantes.palestrante_id = programacao.palestrante_id"; 
    $dados_palestrantes = $db->query($sql); 
    $dados_palestrantes = $dados_palestrantes[0]; 

Foreach для вставки:

<label> 
      Palestrantes 
      <select multiple="multiple" name="palestrantes[]" placeholder="&nbsp;" class="SlectBox"> 
       <?php 
       foreach ($lista_palestrantes as $palestrantes) { 
       echo '<option value="'.$palestrantes['nome'].'">'.$palestrantes['nome'].'</option>'; 
       } 
       ?> 
      </select> 
      </label> 

данных в БД:

a:4:{i:0;s:20:"Alexandre";i:1;s:11:"Antonio";i:2;s:28:"Arlindo";i:3;s:25:"Carlos";} 

ответ

0

Извлеките выбранные вами элементы из базы данных/$_POST и проведите через них. В html:

if($palestrantes['id'] == $fetched_item['id']){ 
    echo '<option value="'.$palestrantes['nome'].'" checked="true">'.$palestrantes['nome'].'</option>'; 
    //----------------------------------------------^^^^^^^^^^^^^^ 
} 
else{ 
    echo '<option value="'.$palestrantes['nome'].'">'.$palestrantes['nome'].'</option>'; 
} 
+0

Большое спасибо Боно! –

+0

@RedVulpine Добро пожаловать;) – Bono

+0

@RedVulpine на втором, хотя вы можете использовать 'id' вместо' name';) – Bono

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