/* 处理属性 */
if ((isset($_POST['attr_id_list']) && isset($_POST['attr_value_list'])) || (empty($_POST['attr_id_list']) && empty($_POST['attr_value_list'])))
{
// 取得原有的属性值
$goods_attr_list = array();
$keywords_arr = explode(" ", $_POST['keywords']);
$keywords_arr = array_flip($keywords_arr);
if (isset($keywords_arr['']))
{
unset($keywords_arr['']);
}
$sql = "SELECT attr_id, attr_index FROM " . $ecs->table('attribute') . " WHERE cat_id = '$goods_type'";
$attr_res = $db->query($sql);
$attr_list = array();
while ($row = $db->fetchRow($attr_res))
{
$attr_list[$row['attr_id']] = $row['attr_index'];
}
$sql = "SELECT g.*, a.attr_type
FROM " . $ecs->table('goods_attr') . " AS g
LEFT JOIN " . $ecs->table('attribute') . " AS a
ON a.attr_id = g.attr_id
WHERE g.goods_id = '$goods_id'";
$res = $db->query($sql);
while ($row = $db->fetchRow($res))
{
$goods_attr_list[$row['attr_id']][$row['attr_value']] = array('sign' => 'delete', 'goods_attr_id' => $row['goods_attr_id']);
}
// 循环现有的,根据原有的做相应处理
if(isset($_POST['attr_id_list']))
{
foreach ($_POST['attr_id_list'] AS $key => $attr_id)
{
$attr_value = $_POST['attr_value_list'][$key];
$attr_price = $_POST['attr_price_list'][$key];
if (!empty($attr_value))
{
if (isset($goods_attr_list[$attr_id][$attr_value]))
{
// 如果原来有,标记为更新
$goods_attr_list[$attr_id][$attr_value]['sign'] = 'update';
$goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;
}
else
{
// 如果原来没有,标记为新增
$goods_attr_list[$attr_id][$attr_value]['sign'] = 'insert';
$goods_attr_list[$attr_id][$attr_value]['attr_price'] = $attr_price;
}
$val_arr = explode(' ', $attr_value);
foreach ($val_arr AS $k => $v)
{
if (!isset($keywords_arr[$v]) && $attr_list[$attr_id] == "1")
{
$keywords_arr[$v] = $v;
}
}
}
}
}
$keywords = join(' ', array_flip($keywords_arr));
$sql = "UPDATE " .$ecs->table('goods'). " SET keywords = '$keywords' WHERE goods_id = '$goods_id' LIMIT 1";
$db->query($sql);
/* 插入、更新、删除数据 */
foreach ($goods_attr_list as $attr_id => $attr_value_list)
{
foreach ($attr_value_list as $attr_value => $info)
{
if ($info['sign'] == 'insert')
{
$sql = "INSERT INTO " .$ecs->table('goods_attr'). " (attr_id, goods_id, attr_value, attr_price)".
"VALUES ('$attr_id', '$goods_id', '$attr_value', '$info[attr_price]')";
}
elseif ($info['sign'] == 'update')
{
$sql = "UPDATE " .$ecs->table('goods_attr'). " SET attr_price = '$info[attr_price]' WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";
}
else
{
$sql = "DELETE FROM " .$ecs->table('goods_attr'). " WHERE goods_attr_id = '$info[goods_attr_id]' LIMIT 1";
}
$db->query($sql);
}
}
}