Mysql
 sql >> Base de données >  >> RDS >> Mysql

La valeur de la colonne du tableau avec une virgule doit être séparée lors de l'affichage de données séparées dans une vue

En règle générale, vous pouvez utiliser éclater avec ceci, mais le simple fait d'utiliser éclater est une approche naïve car il y a un peu de nettoyage à faire,

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

Cela fait 3 choses.

  • éclater les $teams par des virgules
  • matrice de tableau, qui exécute une fonction sur chaque élément, dans ce cas trim qui supprime les espaces
  • filtre de tableau qui supprime les éléments vides au cas où vous auriez un élément comme celui-ci item,, - notez cependant que array_filter supprimera également les éléments avec false et 0 ainsi que des vides, mais dans ce cas, cela devrait suffire.

Maintenant, convertir le tableau en votre balisage devrait être trivial pour la relativité,

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

Il n'est pas nécessaire de sélectionner l'élément par défaut, s'il est rendu en premier et qu'il n'y a pas de sélection, il sera sélectionné par défaut, le $selection est juste pour l'adhérence du formulaire et vous pouvez l'omettre ou le modifier selon vos besoins.

La dernière chose est que vous devrez regarder le boîtier ici, car vous avez un boîtier mixte, donc je ne suis pas sûr à 100 % de ce que vous voulez, par exemple india vs India .

Pour mettre en minuscules, utilisez strtolower() pour mettre en majuscule la première lettre, utilisez uniquement ucfirst()

De plus, je n'ai pas testé cela, mais cela devrait être assez proche moins les fautes de frappe que j'aurais pu faire.