Получение нескольких значений из базы данных с помощью множественного селектора html / php

#php #html #mysql

#php #HTML #mysql

Вопрос:

Я пытаюсь извлечь несколько значений из строки в таблице в базе данных mysql. Я хочу, чтобы селектор отображал только описание, и после отправки формы я хочу иметь доступ к дополнительной информации из этой строки. Я могу получить все item_types в массив, но я не уверен, как добавить item_id. Я не хочу, чтобы item_id отображался в селекторе html.

Я попробовал несколько вещей, таких как array_push. Единственный способ, которым я могу придумать, как это сделать, — создать одну большую строку в «value» и извлечь части после отправки формы.

Вот функция до сих пор:

 function createDropdown() {
    echo '<select multiple name="items[]">';
        try {
            $items = mysql_query("SELECT item_id,item_type FROM items");
            while ($row = mysql_fetch_assoc($items)) {
                echo '<option value="'.$row['item_type'].'"';
                echo '>'. $row['item_type'] . '</option>'."n";
            }
        }
        catch(PDOException $e) {
            echo 'No results';
        }
echo '</select>';
}
  

Комментарии:

1. Вы смешиваете API-интерфейсы MySQL, и они не смешиваются. mysql_query catch(PDOException $e) = нет любви. Что-то подсказывает мне, что вы, вероятно, используете PDO-соединение, но трудно сказать, если не видите полного кода. Однако это PDOException несовместимо с mysql_ .

2. Я использую mysql_connect для подключения к базе данных и $_SERVER[‘PHP_SELF’] для действия формы.

3. «Одна большая строка в ‘value’ и извлечение» после отправки — это один из вариантов, или вы можете написать кучу скрытых входных данных формы и не извлекать. Пожалуйста, покажите пример всей информации, которую вы хотите передать вместе с отправкой формы, чтобы мы могли порекомендовать способы достижения этой цели.

4. Если я не неправильно понял, вы хотите, чтобы item_id возвращался для каждого выбранного ‘item_type’. затем просто установите значение параметра равным [item_id]’. «Значение параметра» — это то, что я вернул, а не то, что видно. То, что видно, это текст между концом ‘>item_text показано</option> . т.е. do: ‘

Ответ №1:

Хм, вы можете попытаться создать таблицу поиска всякий раз, когда вы создаете выпадающий список:

 function createDropdown(amp;$ddlLookup) {
    echo '<select multiple name="items[]">';
        try {
            $items = mysql_query("SELECT item_id,item_type FROM items");
            while ($row = mysql_fetch_assoc($items)) {
                echo '<option value="'.$row['item_type'].'"';
                echo '>'. $row['item_type'] . '</option>'."n";
                $ddlLookup[$item_type] = $item_id;
            }
        }
        catch(PDOException $e) {
            echo 'No results';
        }
echo '</select>';
}
  

Затем всякий раз, когда вам нужен идентификатор для данного описания, вы используете эту таблицу (массив) для его получения:

 $mainDropdownLUT = array();
createDropdown($mainDropdownLUT);

var_dump($mainDropdownLUT['testCow']);
 -> 734
  

Кроме того, если вам нужно передать его на другую страницу, его можно сериализовать и добавить в скрытое поле.

  $mainDropdownLUT = serialize($mainDropdownLUT);
   "<input type="hidden" value ="$mainDropdownLUT">"
   -------------------------**OTHER PAGE **--------------
    $mainDropdownLUT = unserialize($mainDropdownLUT);