Php 从数据库中填充下拉列表,并将该值插入同一数据库中的另一个值

Php 从数据库中填充下拉列表,并将该值插入同一数据库中的另一个值,php,mysql,phpmyadmin,Php,Mysql,Phpmyadmin,我将数据填充到汇编表的下拉列表中(表中的值是用户自己使用php添加的)。现在,我想在零件表中输入部件名称。要从此下拉菜单中选择值,需要插入零件表的“部件名称”列中。我无法选择下拉列表值并将其插入零件表 Part.php <html> <body> <form action="insert_part.php" method="post"> <!--Assembly_Id: <input type="text" name="Assembly_Id"&

我将数据填充到汇编表的下拉列表中(表中的值是用户自己使用php添加的)。现在,我想在零件表中输入部件名称。要从此下拉菜单中选择值,需要插入零件表的“部件名称”列中。我无法选择下拉列表值并将其插入零件表

Part.php

<html>
<body>

<form action="insert_part.php" method="post">
<!--Assembly_Id: <input type="text" name="Assembly_Id">-->
<?PHP 
// Connect to your database ** EDIT THIS **
mysql_connect("localhost","root","abc"); // (host, username, password)

// Specify database ** EDIT THIS **
mysql_select_db("test") or die("Unable to select database"); //select db

$result = mysql_query("select assembly_id,assembly_name from assembly ORDER BY  Assembly_Id"); 

echo '<select name="assembly_name"><OPTION>'; 
echo "Select an option</OPTION>"; 
while ($row = mysql_fetch_array($result)){

$assembly_name= $row["assembly_name"]; 
echo "<OPTION value=\"$assembly_name\">$assembly_name</OPTION>"; 
} 
echo '</SELECT>';
?>


Part_name: <input type="text" name="Part_name">
<input type="submit">
</form>
<hr><hr>
<?php
$con = mysql_connect("localhost","abc");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);

$result = mysql_query("SELECT * FROM Part ORDER BY Part_Id");

echo "<table border='1'>
<tr>
<th>Assembly Name</th>
<th>Part Id</th>
<th>Part Name</th>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['Assembly_Name'] ."</td>";
  echo "<td>" . $row['Part_Id'] . "</td>";
  echo "<td>" . $row['Part_Name'] . "</td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?>
</body>
</html>

零件名称:


insert_part.php

<?php
$con = mysql_connect("localhost","abc");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);
$assembly_name = isset($_POST['assembly_name'])
$sql="INSERT INTO Part (assembly_name,Part_Id, Part_Name) VALUES ('$_POST[assembly_name]','$_POST[Part_Id]','$_POST[Part_name]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
header("Location:part.php");
exit;
mysql_close($con);
?>

第1步:试着理解你的错误试图告诉你什么。第10行有一个变量问题

步骤2:检查代码,了解为什么使用中的变量可能存在问题

接下来,检查上面的行,您会发现第9行的语句没有用
完成并在到达第10行时遇到“意外”变量

您似乎也没有提交
$\u帖子['Part\u Id']


此外,您希望在SQL语句中的
$\u POST
中使用引号,例如
$\u POST['assembly\u name']

第9行缺少分号:

$assembly_name = isset($_POST['assembly_name']);

但正如@Lion所说,一定要改用预先准备好的语句。事实上,这段代码非常不安全:(

。它们不再被维护。请参阅?改为了解,并使用或-将帮助您决定使用哪一种。如果您选择PDO,。您是对的,尽管这些只会引起注意,在理论上应该是有效的。这是错误的做法。