好吧我已经完成了98%的代码,但在最后一点上苦苦挣扎。我正在创建一个订购系统,我从一个页面获取值,将它们发送到一个php页面并将它们插入到这样的mysql数据库中:
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Cannot connect to mysql server");
mysql_select_db($dbname) or die("Cannot select database");
if (isset($_POST['data']) && is_array($_POST['data'])) {
foreach ($_POST['data'] as $row => $data) {
$result = mysql_query("INSERT INTO orders (id,project_ref,supp_short_code,om_part_no,description,quantity,cost_of_items,cost_total) VALUES('', '".$data['project_ref']."', '".$data['supp_short_code']."', '".$data['om_part_no']."', '".$data['description']."', '".$data['quantity_input']."', '".$data['cost_of_items']."', '".$data['cost_total_td']."') ") or die(mysql_error());
}
}
哪个好(我知道我不能防止sql注入等)但是使用上面的代码可能会有多行插入到数据库中,但我需要的是用户以后能够根据一个身份证号码撤回订单。那么我如何在这个插入查询中插入一个id号码,以便它匹配所有行,并且在数据库中绝对是唯一的,理想情况下自动递增(我知道考虑到多行,这将是棘手的!)
答案 0 :(得分:2)
答案 1 :(得分:1)
假设您的'id'字段用于保存每个订单的自动递增ID,您将需要在当前插入语句之前添加一个新插入,这将仅添加一个记录到具有自动递增主要的表键。然后使用这个新的主键并将其与当前表格相关联,而不是当前的“id”或当前的“id”字段。
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die("Cannot connect to mysql server");
mysql_select_db($dbname) or die("Cannot select database");
if (isset($_POST['data']) && is_array($_POST['data'])) {
result = mysql_query("INSERT INTO orders_to_order SET order_primary = NULL");
$orderId = mysql_insert_id();
foreach ($_POST['data'] as $row => $data) {
$result = mysql_query("INSERT INTO orders (id,project_ref,supp_short_code,om_part_no,description,quantity,cost_of_items,cost_total) VALUES(".$orderId.", '".$data['project_ref']."', '".$data['supp_short_code']."', '".$data['om_part_no']."', '".$data['description']."', '".$data['quantity_input']."', '".$data['cost_of_items']."', '".$data['cost_total_td']."') ") or die(mysql_error());
}
}
答案 2 :(得分:1)
在这种情况下我要做的是有两个表,orders
和order_detail
orders
表格包含grand totals
,order date
,customer id
等。
order_detail
表将为每个单独的项目添加一个条目.. part_no
,quantity
,cost
,extended_cost
但会链接回{ {1}} orders
表格。
你最终会选择:
order_id