Как разделить значение запроса на несколько строк для тега select с помощью explode()

У меня есть в столбце значения размера для каждого запроса, например, 38 40 42 44, и я хочу затем выбрать поле размера и отделить его (используя explode()), чтобы дать возможность выбирать после HTML-тега select. я использовал explode() разделить число после пробела, но код не дает мне все результаты в несколько строк

$sql = mysql_query("SELECT * FROM products WHERE id='$item_id' LIMIT 1");
        while ($row = mysql_fetch_array($sql)) {
            $product_name = $row["product_name"];
            $price = $row["price"];
            $size = $row["size"];    
$myArray = explode(' ',  $size);
            foreach($myArray as $my_Array){
                            }

<select name="size"><option value="'.$my_Array.'">'.$my_Array.'</option>
<select name="size"><option value="'.$my_Array.'">'.$my_Array.'</option>

но код показывает мне только первое значение, как 38... И я хочу показать, сколько чисел в стоимости. Покажите для каждого тег выбора со значением, чтобы предоставить возможность выбора пользователем. Я не знаю, что я пропустил.

РЕДАКТИРОВАТЬ Благодаря dpp я исправил проблему, это было с закрытием функции цикла слишком рано.

3 ответа

Решение
//assuming that `size` is stored as 38 40 42 in the same row
//also assuming your LIMIT 1 is for testing, if not, you don't need the loop
/** PLEASE CHANGE TO MYSQLI OR PDO! mysql_ is depreciated and a huge security risk **/ 
$sql = mysql_query("SELECT * FROM products WHERE id='$item_id' LIMIT 1");
    while ($row = mysql_fetch_array($sql)) {
        $product_name = $row["product_name"];
        $price = $row["price"];
        $size = $row["size"];    
        myArray = explode(' ',  $size);
        //heres your issue, declare select to start with
        echo '<select name="size">';
        foreach($myArray as $my_Array){
             //the out put from your explode loop array needs to go here
             echo '<option value="'.$my_Array.'">'.$my_Array.'</option>';
        }
        echo '</select>';
}//close the while loop

Проблема в вашем foreach($list as $value){ ... } Вы назвали цикл так же, как список, и он может быть переписан.

Конец цикла foreach} находится в неправильном месте. Вы ничего не делаете в цикле.

Другие вопросы по тегам