Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Der Wert der Tabellenspalte mit Komma muss getrennt werden, während getrennte Daten in einer Ansicht angezeigt werden

Normalerweise können Sie explode damit verwenden, aber die Verwendung von explode ist ein naiver Ansatz, da ein wenig aufgeräumt werden muss,

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

Dies bewirkt 3 Dinge.

  • $teams durch Komma auflösen
  • Array-Map, die eine Funktion für jedes Element ausführt, in diesem Fall trim, das Leerzeichen entfernt
  • Array-Filter, der leere Elemente entfernt, falls Sie ein Element wie dieses item,, haben - Beachten Sie jedoch, dass array_filter auch Elemente mit false entfernt und 0 sowie leere, aber in diesem Fall sollte es ausreichen.

Nun sollte das Konvertieren des Arrays in Ihr Markup relativ trivial sein,

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

Es besteht keine Notwendigkeit, das Standardelement auszuwählen, wenn es zuerst gerendert wird und es keine Auswahl gibt, wird es standardmäßig ausgewählt, die $selection ist nur für die Formklebrigkeit und Sie können dies nach Ihren Bedürfnissen weglassen oder ändern.

Als letztes müssen Sie hier auf die Hülle achten, weil Sie gemischte Hüllen haben, also bin ich mir nicht 100 % sicher, welche Sie wollen, zum Beispiel india vs. India .

Verwenden Sie zum Kleinschreiben strtolower() Um den ersten Buchstaben groß zu schreiben, verwenden Sie nur ucfirst()

Ich habe das auch nicht getestet, aber es sollte ziemlich nah dran sein, abzüglich aller Tippfehler, die ich vielleicht gemacht habe.