问题描述
|
嘿。当我使用以下功能时:
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;
}
$ products通过以下方式传递:
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;
基本上,我想做的是从当前库存中减去数量,然后将数量添加到已售出的库存中。但是,这并不是很有效,并且时不时会出现上述错误。但是奇怪的是,我会毫无问题地多次调用该函数。
提前致谢,
杰兹
解决方法
只需替换此功能,这可能会起作用。
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;
}
, 您需要在功能get_order_items
中从数据库中选择字段product_id
。 (p.product_id
)。