【发布时间】:2014-07-11 00:23:11
【问题描述】:
我正在尝试捕获项目的相应 id,同时从选择标签中选择它 然后通过隐藏输入发布它,以便插入到另一个具有项目名称的表中。
换句话说我想插入项目的名称和对应的id:
<form action="interface.php" method="post">
Equipment: <select name="equipment">
<option value="0">Выберите оборудование</option>
<?php
$res = mysql_query('select `equipment_id`,`name`,`ip_adress` from `equipment`');
while($row = mysql_fetch_assoc($res)){
do
{
printf("<option>%s</option>",$row['name']);
$equipment_id = $row['equipment_id'];
while ($row=mysql_fetch_array($res));
}
?>
</select>
<input type="hidden" name="equipment_id" value="<?php echo $equipment_id;?>" />
Interface.php 处理程序:
<?php
include("connect.php");
$val1 = $_POST['equipment'];
$val2 = $_POST['equipment_id'];
$val3 = $_POST['vlan'];
$val4 = $_POST['vlan_id'];
$val5 = $_POST['name'];
$val6 = $_POST['description'];
mysql_select_db("ADRESSA") or die("Could not select database");
$result_insert = mysql_query ("INSERT INTO `ADRESSA`.`interface` (`equipment`, `equipment_id`, `vlan`,`vlan_id`,`name`,`description`)
VALUES ('$val1','$val2','$val3','$val4','$val5','$val6');")
or die ("<b>Query failed:</b> " . mysql_error());
if ($result_insert== 'true')
{
echo "1 record added";
header('Location: http://192.168.0.1/find/1/show_interface.php');
}
else{echo "try again";
}
mysql_close();
?>
问题在于,这些值仅在开始时才正确插入,而在接下来的查询中,它只是添加了相同的值。
最好的问候!
【问题讨论】:
-
1.永远不要相信用户输入 2. 你很容易发生 SQL 注入 3. 你正在使用已弃用的 API。所有 3 都可以使用准备好的语句来解决
-
嗯,这在现阶段不是很重要,我真正关心的是如何使这项工作发挥作用
-
您的隐藏字段在任何循环之外。只有循环的最后一个值存储在那里。如果您需要存储“选定”选项的值,那么我认为您可能需要一些 javascript 代码。如果你的意思是别的,请澄清。
-
请说明您的情况
-
我需要同时插入姓名和身份证,同时从选择标签中选择姓名