function ship_order($id, $order_items, $products)
{
$connection = mysql_open();
foreach ($order_items as $order_item)
{
foreach ($products as $product)
{
if ($order_item['product_id'] == $product['id'])
{
if ($order_item['quantity'] > $product['stock'])
{
return false;
}
}
}
}
$query = "update SEOrders " .
"set status='Shipped' " .
"where id = $id";
$result = mysql_query($query, $connection) or show_error();
foreach ($order_items as $order_item)
{
foreach ($products as $product)
{
if ($order_item['product_id'] == $product['id'])
{
$new_stock = $product['stock'] - $order_item['quantity'];
$sold_stock = $product['sold_stock'] + $order_item['quantity'];
$query = "update SEProducts " .
"set sold_stock= '$sold_stock', stock='$new_stock' " .
"where id = $id";
$result = mysql_query($query, $connection) or show_error();
}
}
}
mysql_close($connection) or show_error();
return true;
}
我偶尔会得到一个看起来像这样的错误:
Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 176 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/home/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Notice: Undefined index: product_id in /net/export/home/public_html/wp/SE/includes/defs.php on line 196 Warning: Cannot modify header information - headers already sent by (output started at /net/export/home/public_html/wp/SE/includes/defs.php:196) in /net/export/home/public_html/wp/SE/ship_order_action.php on line 21
但是现在只有。我不知道为什么它偶尔会发生。
此外,mysql_open()函数在此处定义:
function mysql_open()
{
$connection = @ mysql_connect(HOST, USER, PASSWORD)
or die("Could not connect");
mysql_select_db(DATABASE, $connection)
or show_error();
return $connection;
}
HOST,USEr等在单独的文件中定义。
传入的$ id直接来自页面,我已经检查过了。 $ order_items传入:
function get_order_items($id)
{
$connection = mysql_open();
$query = "select oi.order_id, p.name, oi.quantity, p.stock " .
"from SEOrder_items as oi join SEProducts p on oi.product_id = p.id " .
"where oi.order_id = $id";
$result = mysql_query($query, $connection) or show_error();
mysql_close($connection) or show_error();
$order_items = array();
while ($order_item = mysql_fetch_array($result))
{
$order_items[] = $order_item;
}
return $order_items;
}
并且$产品通过以下方式传递:
function get_products()
{
$connection = mysql_open();
$query = "SELECT * FROM SEProducts";
$query .= " order by name asc";
$result = mysql_query($query, $connection) or show_error();
$products = array();
while ($product = mysql_fetch_array($result))
{
$products[] = $product;
}
mysql_close($connection) or show_error();
return $products;
}
如果它是相关的,数据库看起来像这样:
create table if not exists SEOrders
(
id int not null auto_increment primary key,
name varchar(20) not null,
address varchar(30) not null,
status varchar(10) not null,
dateShipped timestamp
)ENGINE=INNODB;
create table if not exists SEProducts
(
id int not null auto_increment primary key,
price double not null,
name varchar(30) not null,
stock int not null,
original_stock int not null,
sold_stock int not null
)ENGINE=INNODB;
create table if not exists SEOrder_items
(
id int not null auto_increment primary key,
order_id int not null,
foreign key (order_id) references SEOrders(id),
product_id int not null,
foreign key (product_id) references SEProducts(id),
quantity int not null
)ENGINE=INNODB;
基本上我要做的是从当前库存中减去数量以及将数量添加到已售出的库存中。然而,这不是很有效,我时不时会得到上述错误。但奇怪的是,我会毫无问题地多次调用该函数。
提前致谢, JheeBz
答案 0 :(得分:0)
您需要在函数product_id
中从数据库中选择字段get_order_items
。 (p.product_id
)。
答案 1 :(得分:0)
只需更换此功能,这可能会有效。
function get_order_items($id)
{
$connection = mysql_open();
$query = "select p.id, oi.order_id, p.name, oi.quantity, p.stock, oi.product_id " .
"from SEOrder_items as oi join SEProducts p on oi.product_id = p.id " .
"where oi.order_id = $id";
$result = mysql_query($query, $connection) or show_error();
mysql_close($connection) or show_error();
$order_items = array();
while ($order_item = mysql_fetch_array($result))
{
$order_items[] = $order_item;
}
return $order_items;
}