从下拉菜单的单个选择标记向MySql插入2个值

时间:2012-04-21 15:14:40

标签: php mysql html forms drop-down-menu

有没有办法从一个选择的下拉菜单中向Mysql插入2个值?

用于插入表单值的mysql语法示例如下:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO menu (food, image_extension) VALUES (%s, %s)",
GetSQLValueString($_POST['food'], "text"),
GetSQLValueString($_POST['image_extension'], "text"),

mysql_select_db($database_menu, $menu);
$Result1 = mysql_query($insertSQL, $menu) or die(mysql_error());

$insertGoTo = "menu.php?status=choosen";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}

我正在尝试将以下下拉列表的每个选定标记中的2列(food& image_extension)的值插入到MySql中,但它无法将数据插入到image_extension列。它只更新食物栏。

<select name="food, image extension" class="dropdownmenu" input id="food" value="<?php echo $_POST['food'].$_POST['image_extension']; ?>"> 
<option value="selected="selected">Select Food</option>
<option value="Pizza, pizza.jpg">Pizza</option>
<option value="French Fry' frenchfry.jpg">French Fry</option>
</select>

我很困惑如何在这种情况下正确地将值放在上面下拉列表的以下三个属性中?

1. <select name="food, image extension" 
2. <select value="<?php echo $_POST['food'].$_POST['image_extension']; ?>" 
3. <option value="Pizza, pizza.jpg">Pizza</option>

任何指南都应该受到高度赞赏。

2 个答案:

答案 0 :(得分:0)

而不是为select使用两个不同的名称,只需从选择菜单中获取值并将其转换为数组

<?php

$food = explode (",", $_POST['food']);

//$food[0] will equal Pizza, $food[1] will equal pizza.jpg
$insertSQL = "INSERT INTO menu (food, image_extension) VALUES ({$food[0]}, {$food[1]})";

?>

<select name="food" class="dropdownmenu" id="food">
<option value="Pizza, pizza.jpg">Pizza</option>
<option value="French Fry, frenchfry.jpg">Pizza</option>
</select>

答案 1 :(得分:0)

无论如何,问题已经通过www.phpbuilder.com上的专家研究员的精确指导得到了解决。我将在下面展示整个解决方案:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { 

//("," Comma within the double quote shall be used as delimiter here) 
$food=explode(",",$_POST['food']); 
$insertSQL = sprintf("INSERT INTO menu (food, image_extension) VALUES (%s, %s)", 

// The column names in the following string should be replaced by the newly created 
// array elements along with trim function to remove any unexpected white space.       

GetSQLValueString (trim($food[0]), "text"), 
GetSQLValueString (trim($food[1]), "text");

mysql_select_db($database_menu, $menu); 
$Result1 = mysql_query($insertSQL, $menu) or die(mysql_error()); 

$insertGoTo = "menu.php?status=choosen"; 
if (isset($_SERVER['QUERY_STRING'])) { 
$insertGoTo .= (strpos($insertGoTo, '?')) ? "" : "?"; 
$insertGoTo .= $_SERVER['QUERY_STRING']; 
} 
header(sprintf("Location: %s", $insertGoTo)); 
} 

html部分应更改为以下内容:

 <select name="food" class="dropdownmenu" input id="food" 
 value="<?php echo  $_POST['food']; ?>">
 <option value="selected="selected">Select Food</option>
 <option value="Pizza, pizza.jpg">Pizza</option>
 <option value="French Fry' frenchfry.jpg">French Fry</option>
 </select>