sql >> Base de Datos >  >> RDS >> Mysql

El valor de la columna de la tabla con coma debe estar separado mientras se muestran datos separados en una vista

Por lo general, puede usar explotar con esto, sin embargo, solo usar explotar es un enfoque ingenuo ya que hay un poco de limpieza por hacer,

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

Esto hace 3 cosas.

  • explotar $equipos por coma
  • mapa de matriz, que ejecuta una función en cada elemento, en este caso trim, que elimina los espacios en blanco
  • filtro de matriz que elimina elementos vacíos en caso de que tenga un elemento como este item,, - tenga en cuenta que array_filter también eliminará elementos con false y 0 así como vacíos, pero en este caso debería ser suficiente.

Ahora, convertir la matriz a su marcado debería ser relativamente 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>';

No es necesario seleccionar el elemento predeterminado, si se representa primero y no hay ninguna selección, se seleccionará de forma predeterminada, la $selection es solo para mantener el formulario pegajoso y puede omitirlo o modificarlo según lo dicten sus necesidades.

Lo último es que tendrá que ver la carcasa aquí, porque tiene una carcasa mixta, por lo que no estoy 100% seguro de cuál quiere, por ejemplo, india contra India .

Para usar minúsculas strtolower() para poner en mayúsculas la primera letra solo use ucfirst()

Además, no he probado esto, pero debería estar bastante cerca menos los errores tipográficos que podría haber hecho.