#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);