Mysql
 sql >> Database >  >> RDS >> Mysql

Il valore della colonna della tabella con la virgola deve essere separato durante la visualizzazione di dati separati in una vista

In genere puoi usare esplodi con questo, tuttavia usare semplicemente esplodi è un approccio ingenuo in quanto c'è un po' di pulizia da fare,

 $array =  array_filter( array_map('trim', explode(',', $teams ) ) );

Questo fa 3 cose.

  • Esplodi $teams per virgola
  • mappa di array, che esegue una funzione su ogni elemento, in questo caso trim che rimuove gli spazi bianchi
  • filtro array che rimuove gli elementi vuoti nel caso in cui tu abbia un elemento come questo item,, - nota però che array_filter rimuoverà anche gli elementi con false e 0 così come quelli vuoti, ma in questo caso dovrebbe essere sufficiente.

Ora convertire l'array nel tuo markup dovrebbe essere relatività banale,

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>';

Non è necessario selezionare l'elemento predefinito, se viene visualizzato prima e non è presente alcuna selezione, verrà selezionato per impostazione predefinita, il $selection è solo per la viscosità della forma e puoi ometterla o modificarla in base alle tue esigenze.

L'ultima cosa è che dovrai guardare l'involucro qui, perché hai un involucro misto, quindi non sono sicuro al 100% di quale tu voglia, ad esempio india vs India .

Per usare il minuscolo strtolower() per usare solo la prima lettera maiuscola ucfirst()

Inoltre non l'ho testato, ma dovrebbe essere abbastanza vicino meno eventuali errori di battitura che potrei aver commesso.