2015-08-09 4 views
0

У меня есть таблица с именем «item» в базе данных, которая имеет разные столбцы, один из которых имеет имя «размер», имеет два значения, разделенные запятой, например Medium, Large. Теперь, когда я извлекаю эти значения для показа в своем теге «select», они показывают их вместе, я попытался использовать explode(); но я возился с его поведением. Я прикрепил фотографии таблицы и приведенные данные на моем сайте вместе с кодом.Обновление тега select из базы данных с несколькими значениями

enter image description here

в то время как цикл выполняется выше, это только 'Размер:' часть

Size : 
<?php var_dump($row["item_size"]); 
$arr = $row["item_size"]; 
$exp = explode("," , $arr); 
var_dump($exp); 

?> 
     <select name="product_size"> 
<?php 
echo "<option value='".$row["item_size"]."'>".$row["item_size"]."</option>"; 
echo "</select>"; 
?> 

enter image description here

+2

не должны хранить массивы в областях (нормализовать хранение) – amdixon

+0

@amdixon, разработка или лучший способ сделать это, пожалуйста? – user5173426

+0

лучший способ сделать это - хранить категории (средний, маленький и т. Д.) В таблице и иметь таблицу ссылок между вашими продуктами и этими категориями, например. product_cats. то вы можете присоединиться и получить эту информацию (и многое другое, когда вы меняете свои требования) легко – amdixon

ответ

1

Вы должны петли через size массива вправо после взрывания.

$arr = $row["item_size"]; 
    $exp = explode("," , $arr); 

echo "<select name='product_size'>"; 

foreach($exp as $key=>$val) { 
     echo "<option value='" . $val . "'>" . $val . "</option>"; 
} 

echo "</select>"; 

Работа Demo

+0

Боже. спасибо человеку, я не могу поверить, что я об этом не думал! : p – user5173426

+0

ваш прием :) – Noman

Смежные вопросы