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

时间:2013-02-12 14:53:02

标签: php mysql phpmyadmin

我将数据填充到Assembly表的下拉列表中(表中的值是由用户自己使用php添加的)。现在我想在Part Table中使用Assembly_Name。想要从此下拉菜单中选择值,需要插入到Part表的Assembly_Name列中。我无法选择下拉值并将其插入到Part表中。

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

提交值时,我收到以下错误:

  

解析错误:语法错误,意外的T_VARIABLE   第10行的C:\ wamp \ www \ insert_part.php

2 个答案:

答案 0 :(得分:0)

第1步:尝试了解您的错误试图告诉您的内容。第10行有一个可变的问题。

步骤2:检查代码中可能存在使用变量问题的原因。

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

您似乎也没有提交$_POST['Part_Id']

此外,您需要$_POST中的引号,例如SQL语句中的$_POST['assembly_name']

答案 1 :(得分:0)

第9行你错过了一个分号:

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

但正如@Lion所说,请改为使用预备语句。因为这是非常不安全的代码:(