Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

O valor da coluna da tabela com vírgula precisa ser separado ao mostrar dados separados em uma exibição


Normalmente, você pode usar explodir com isso, no entanto, apenas usar explodir é uma abordagem ingênua, pois há um pouco de limpeza a ser feita,
 $array =  array_filter( array_map('trim', explode(',', $teams ) ) );

Isso faz 3 coisas.
  • explodir $teams por vírgula
  • mapa de matriz, que executa uma função em cada item, neste caso trim, que remove os espaços em branco
  • filtro de matriz que remove itens vazios caso você tenha um item como este item,, - note que array_filter também removerá elementos com false e 0 bem como vazios, mas neste caso deve ser suficiente.

Agora, converter a matriz para sua marcação deve ser trivial,
echo '<select name="tournament_team" class="form-control" >';
echo '<option value="">--- Select Team ---</option>';
foreach( $array as $item ){
    if($_POST['tournament_team'] == $item){
        $selected = ' selected="selected"';
    }else{
        $selected = '';
    }
      echo '<option value="'.$item.'"'.$selected.'>'.$item.'</option>';
}
echo '</select>';

Não há necessidade de selecionar o item padrão, se ele for renderizado primeiro e não houver seleção, ele será selecionado por padrão, a $selection é apenas para aderência do formulário e você pode omitir ou modificar isso conforme suas necessidades.

A última coisa é que você terá que observar a caixa aqui, porque você tem caixa mista, então não tenho 100% de certeza de qual você quer, por exemplo india vs India .

Para letras minúsculas, use strtolower() para maiúscula a primeira letra use apenas ucfirst()

Também não testei isso, mas deve ser bastante próximo menos quaisquer erros de digitação que eu possa ter feito.