我将数据填充到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
答案 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所说,请改为使用预备语句。因为这是非常不安全的代码:(