Php 将另一个表中的下拉列表创建到我的更新/删除/添加表中

Php 将另一个表中的下拉列表创建到我的更新/删除/添加表中,php,mysql,database,lookup,dropdownbox,Php,Mysql,Database,Lookup,Dropdownbox,我是个新手,正在为学校做一个项目 我有一个列出食物的网站 我有一个更新表,允许我更改和添加数据 对于food group字段,我将其交叉引用另一个名为food_group的表,该表具有food_groupname和id 当您查看食品数据时,您可以看到它提取的名称而不是ID。在更新页面上,我希望在ID的位置有一个下拉列表。因此,您可以看到友好的名称而不是ID号,但它必须在食品表中存储ID而不是友好的名称 网址为 我的密码是: <html> <head> </head&

我是个新手,正在为学校做一个项目

我有一个列出食物的网站

我有一个更新表,允许我更改和添加数据

对于food group字段,我将其交叉引用另一个名为food_group的表,该表具有food_groupname和id

当您查看食品数据时,您可以看到它提取的名称而不是ID。在更新页面上,我希望在ID的位置有一个下拉列表。因此,您可以看到友好的名称而不是ID号,但它必须在食品表中存储ID而不是友好的名称

网址为

我的密码是:

<html>
<head>
</head>
<body>
<?php
$con = mysqli_connect("localhost","user","pw","db");
if (!$con){
die("Can not connect: " . mysql_error());
}


if(isset($_POST['update'])){
$UpdateQuery = "UPDATE food SET food_group='$_POST[Food_group]', food='$_POST[Food]',     ph='$_POST[PH]' WHERE food='$_POST[hidden]'";               
mysql_query($UpdateQuery, $con);
};

if(isset($_POST['delete'])){
$DeleteQuery = "DELETE FROM food WHERE Food='$_POST[hidden]'";          
mysql_query($DeleteQuery, $con);
};

if(isset($_POST['add'])){
$AddQuery = "INSERT INTO food (Food_group, Food, PH) VALUES     ('$_POST[addGroup]','$_POST[addFood]','$_POST[addPH]')";         
mysql_query($AddQuery, $con);
};



$sql = "SELECT * FROM food";
$myData = mysqli_query($con,$sql);
echo "<table border=1>
<tr>
<th>Food Group</th>
<th>Food</th>
<th>PH</th>
<th>Update/Add</th>
<th>Delete</th>
</tr>";
while($record = mysqli_fetch_array($myData)){
echo "<form action=updateFood.php method=post>";
echo "<tr>";
echo "<td><input type='text' name='Food_group' value='$record[food_group]'/></td>";
echo "<td><input type='text' name='Food' value='$record[food]'/></td>";
echo "<td><input type='text' name='PH' value='$record[ph]'/></td>";
echo "<td><input type='submit' name='update' value='update'/></td>";
echo "<td><input type='submit' name='delete' value='delete'/></td>";
echo "<td><input type='hidden' name='hidden' value='$record[food]'/></td>";
echo "</tr>";
echo "</form>";
}
echo "<form action=updateFood.php method=post>";
echo "<tr>";
echo "<td><input type='text' name='addGroup'></td>";
echo "<td><input type='text' name='addFood'></td>";
echo "<td><input type='text' name='addPH'></td>";
echo "<td><input type='submit' name='add' value='add'/></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
mysql_close($con);
?>

</body>
</html>
____________2013年12月2日10:30更新___________________ 好的,如果我创建一个新的php页面,如下所示,它将工作。然而,我不知道如何把它结合到原来的上面。。。有人能帮忙吗

<html>
<head>
</head>
<body>
<?php

// Connect to the database server
$con = mysql_connect("localhost","user","pw");
if (!$con){
die("Can not connect: " . mysql_error());
}
mysql_select_db("db",$con);

$sql2="SELECT id, food_group FROM food_group"; 
$result = mysql_query($sql2,$con) or die(mysql_error());
while ($row = mysql_fetch_array($result)) { 
$type=$row["food_group"];
$options.= '<option value="'.$row['id'].'">'.$row['food_group'].'</option>';
};?>

<SELECT NAME=Food_group>
<OPTION VALUE=0>Choose</OPTION>
<?php echo $options; ?>
</SELECT>
</body>
</html>
谢谢你的帮助!
Jason

你的脚本很好,但我只想指出以下几点:

没有必要将此连接起来

"<td>" . "<input type=text name=Food_group value=" . $record['food_group'] . "         </td>"; 
您可以这样键入:

echo "<td><input type=text name=Food_group value='$record[food_group]'</td>"; 
您还没有关闭输入标记

echo "<td><input type=text name=Food_group value='$record[food_group]' /></td>"; 
另一个是你需要引用你的属性值,见下文

echo "<td><input type='text' name='Food_group' value='$record[food_group]'</td>"; 

最后一件事是,您对SQL注入是开放的,所以您应该开始学习mysqli和prepared statement

您对SQL注入是开放的。请先转义输入数据,然后再将其放入查询。谢谢您的更正。这将使事情变得更好。通过使用mysqli,现在有没有简单的方法使下拉菜单工作?顺便说一句,我用你的建议编辑了我的原始代码。谢谢。下拉菜单有什么作用?要选择添加/编辑/删除方法?例如>从食物组中选择食物组,其中食物组.id=食物组aa,食物,ph值来自食物;;例如,“苜蓿草”的食物组是食物组表中的id“16”。因此,在我的编辑页面上,它显示的是数字“16”,而不是食品组表中定义的“蔬菜”。所以我希望我能有一个下拉菜单,列出“蔬菜”的友好名称,而数据库使用id号来引用这两个表。如果你去,你会看到左边的链接。食物是食物列表,而更新/添加食物则提供原始数据。我希望我的更新/添加食物页面看起来更像我的食物页面,有友好的名称。因此,我希望看到食物组选项的下拉菜单,它交叉引用另一个表中的用户友好名称,但保存id