因此,我正在尝试存储_SESSION数组的值,这将使购物车在我的网站上正常工作。我在向数据库中插入相同的数组时遇到了麻烦-我猜我对多个数组有相同的ID,因此这是行不通的。那是我的猜测。我希望有一个人可以帮助我。

这是我第一次尝试。



<?

$con = mysql_connect('bluecubecreatives.net', 'bluecu6_user', '*****');  if (!$con)  {    die('Could not connect: ' . mysql_error());  }
  mysql_select_db("bluecu6_databasename", $con);

$itemsupdate =  "INSERT INTO orderitems (ID, ORDER_ID, ITEM_ID, NAME, QUANTITY, SIZE, FOR, PRICE, TOTAL)
VALUES (NULL, '$id', '$item_stock_id', '$item_name', '$item_quantity', '$item_size', '$item_for', '$item_price', '$item_total');";
mysql_query($itemsupdate);

?>





这是我第二次尝试修复它。



$additems = array ('ID' => NULL, 'ORDER_ID' => $item_id, 'ITEM_ID' => $item_stock_id, 'NAME' => $item_name, 'QUANTITY' => $item_quantity, 'SIZE' => $item_size, 'FOR' => $item_for, 'PRICE' => $item_price, 'TOTAL' => $item_total);

$update =  "INSERT INTO orderitems (ID, ORDER_ID, ITEM_ID, NAME, QUANTITY, SIZE, FOR, PRICE, TOTAL) VALUES";

$it = new ArrayIterator( $additems );
    // a new caching iterator gives us access to hasNext()
    $cit = new CachingIterator( $it );
    // loop over the array
    foreach ( $cit as $value )
    {
        // add to the query
        $sql .= "('".$cit->key()."','" .$cit->current()."')";
        // if there is another array member, add a comma
        if( $cit->hasNext() )
        {
            $sql .= ",";
        }
    }





这里是完整的代码,我正在尝试将SESSION项目以及帐单+运送详细信息推送到数据库中。



$connection = mysql_connect('bluecubecreatives.net', 'bluecu6', '****');
$selected = mysql_select_db("bluecu6", $connection)  or die("Hello ONE, Sorry! This AI system couldn't connect to your database.");
if (!$connection) {  die('Could not connect: ' . mysql_error()); }

if (isset($_GET['id'])) {
$id = $_GET['id'];
} else { $id = 1; }

if (isset($_GET['size'])) {
$size = $_GET['size'];
} else { $size = "Standard"; }

if (isset($_GET['quantity'])) {
$quantity = $_GET['quantity'];
$cart_update = 1;
} else { $quantity = 0; $cart_update = 0; }


if (isset($_GET['for'])) {
$for = $_GET['for'];
} else { $for = "All Purpose"; }

if (isset($_GET['action'])) {
$action = $_GET['action'];
} else { $action="empty";
}

$data = mysql_query("SELECT * FROM products WHERE ID= '" . $id . "';" ,$connection) or die(mysql_error());
$val = mysql_fetch_array($data);


if ($action=="add") {
$newitem = array ('id' => $id , 'name' => $val['PRO_NAME'], 'quantity' => $quantity, 'size' => $size,'for' => $for,'price' => $val['PRO_RS']);
$_SESSION['item'][$id] = $newitem;
}

$_SESSION['quantity'] = $_SESSION['quantity'] + $cart_update;
$in_cart = $_SESSION['quantity'];
$_SESSION['cart_total'] = $in_cart;

if ($_SESSION['cart_total'] <=0) {
	$_SESSION['cart_total'] = 0;
}

if ($id!=0) {

switch($action) {

	case "view":
	if 	(isset($_SESSION['cart'][$id])) {
	$_SESSION['cart'][$id];
	} 	else {
	$_SESSION['cart'][$id]=0;
	}	break;


	case "refresh";
		session_destroy();
	break;

	case "delete";
	if 	($_SESSION['cart_total']==1) {
		$_SESSION['cart_total']=0;
		unset($_SESSION['item']);
		session_destroy();
	}
	else if ($_SESSION['cart_total']>1) {
		$_SESSION['quantity']--;
		$_SESSION['cart_total']--;
		unset($_SESSION['item'][$id]);
	}	break;

	case "add":
	if 	(isset($_SESSION['cart'][$id])) {
	$_SESSION['cart'][$id]++;
	} else {
	$_SESSION['cart'][$id]=1;
	}	break;

	case "remove";
	if 	(isset($_SESSION['cart'][$id])) {
	$_SESSION['cart'][$id]--;

		if ($_SESSION['cart'][$id]==0) {
		unset($_SESSION['cart'][$id]);
		$_SESSION['cart_total']--;
		}
		if ($_SESSION['cart'][$id]==-1) {
		unset($_SESSION['cart'][$id]);
		$_SESSION['cart_total']--;
		}
	}	break;

	case "empty";
	unset($_SESSION['cart']);
	$_SESSION['cart_total'] = 0;
	break;
}

}

if($_POST['ADD_TOCONFIRM']){

$shipping_option = $_POST['shipping_option'];$payment_option = $_POST['payment_option'];$discount_val = $_POST['discount_val'];

$bname = $_POST['name'];$baddress = $_POST['address'];$bcity = $_POST['city'];$bprovince = $_POST['province'];$bzip = $_POST['zip'];
$bcountry = $_POST['country'];$bcontact = $_POST['contact'];$bemail = $_POST['email'];

$sname = $_POST['sname'];$saddress = $_POST['saddress'];$scity = $_POST['scity'];$sprovince = $_POST['sprovince'];$szip = $_POST['szip'];
$scountry = $_POST['scountry'];$scontact = $_POST['scontact'];$semail = $_POST['semail'];

$status = "Pending";

//

foreach ( $_SESSION['item'] AS $data ) {

$xo = mysql_query("SELECT * FROM products WHERE ID= '" . $data['id'] . "';" ,$connection) or die(mysql_error());
$yo = mysql_fetch_array($xo);

$l_cost = $data['price'] * $data['quantity'];
$t_cost = $t_cost + $l_cost;
$t_bill = $t_cost;

$item_id =  (int) $id;
$item_stock_id = (int) $yo['ID'];
$item_name = $yo['PRO_NAME'];
$item_size = $data['size'];
$item_for = $data['for'];
$item_quantity = (int) $data['quantity'];
$item_price = (int) $yo['PRO_RS'];
$item_total = (int) $l_cost;

$con = mysql_connect('bluecubecreatives.net', 'bluecu6', '***');  if (!$con)  {    die('Could not connect: ' . mysql_error());  }
mysql_select_db("bluecu6", $con);

$itemsupdate =  "INSERT INTO orderitems (ID, ORDER_ID, ITEM_ID, NAME, QUANTITY, SIZE, FOR, PRICE, TOTAL)
VALUES (NULL, '$item_id', '$item_stock_id', '$item_name', '$item_quantity', '$item_size', '$item_for', '$item_price', '$item_total');";

mysql_query($itemsupdate);

echo '<br />';
echo $item_id. '<br />';
echo $item_stock_id. '<br />';
echo $item_name. '<br />';
echo $item_size. '<br />';
echo $item_for. '<br />';
echo $item_quantity. '<br />';
echo $item_price. '<br />';
echo $item_total. '<br />';

	}


if (($shipping_option!=="")&&($payment_option!=="")&&($bname!=="")&&($baddress!=="")&&($bcity!=="")&&($bprovince!=="")&&($bzip!=="")&&($bcountry!=="")&&($bcontact!=="")&&($bemail!=="")) {

$con = mysql_connect('bluecubecreatives.net', 'bluecu6', '*****');  if (!$con)  {    die('Could not connect: ' . mysql_error());  }
  mysql_select_db("bluecu6", $con);

  $query =
 "INSERT INTO orders (ORDER_ID, SHIP_OPTION, PAY_OPTION, DISCOUNT, NAME, ADDRESS, CITY, PROVINCE, ZIP, COUNTRY, CONTACT, EMAIL, NAME_SHIP, ADDRESS_SHIP, CITY_SHIP, PROVINCE_SHIP, ZIP_SHIP, COUNTRY_SHIP, CONTACT_SHIP, EMAIL_SHIP, STATUS)

VALUES (NULL, '$shipping_option', '$payment_option', '$discount_val', '$bname', '$baddress', '$bcity', '$bprovince', '$bzip', '$bcountry', '$bcontact', '$bemail', '$sname', '$saddress', '$scity', '$sprovince', '$szip', '$scountry', '$scontact', '$semail' , '$status');";



mysql_query($query);
echo '<br />';
echo "success". '<br />';
echo '<br />';
echo $shipping_option. '<br />';
echo $payment_option. '<br />';
echo $discount_val. '<br />';
echo '<br />';
echo $bname. '<br />';
echo $baddress. '<br />';
echo $bcity. '<br />';
echo $bprovince. '<br />';
echo $bzip. '<br />';
echo $bcountry. '<br />';
echo $bcontact. '<br />';
echo $bemail. '<br />';
echo '<br />';
echo $sname. '<br />';
echo $saddress. '<br />';
echo $scity. '<br />';
echo $sprovince. '<br />';
echo $szip. '<br />';
echo $scountry. '<br />';
echo $scontact. '<br />';
echo $semail. '<br />';
echo '<br />';
echo $total_bill. '<br />';
//echo mysql_query($newitem). '<br />';

foreach ( $_SESSION['item'] AS $item )
{
 echo 'id: ' . $item['id'] . ' - ';  echo 'name: ' . $item['name'] . ' - '; echo 'quantity: ' . $item['quantity'] . ' - '; echo 'size: ' . $item['size'] . ' - ';  echo 'price: ' . $item['price'] . ' - ';  echo 'for: ' . $item['for'] . '<br />';

 	$line_cost = $item['price'] * $item['quantity'];
	$total_cost = $total_cost + $line_cost;
	$total_bill = $total_cost;
}

	echo '<br />'; echo '<br />';
	echo $total_bill;
	echo '<br />'; echo '<br />';


mysql_close($con);


} else {
echo "please fill all options";
}

}

最佳答案

假设您有以下数组,

$additems = array ('ID' => NULL, 'ORDER_ID' => $item_id, 'ITEM_ID' => $item_stock_id, 'NAME' => $item_name, 'QUANTITY' => $item_quantity, 'SIZE' => $item_size, 'FOR' => $item_for, 'PRICE' => $item_price, 'TOTAL' => $item_total);


您可以像执行查询

$update =  "INSERT INTO orderitems (ORDER_ID, ITEM_ID, NAME, QUANTITY, SIZE, FOR, PRICE, TOTAL) VALUES ($additems['ORDER_ID'],$additems['ITEM_ID'],$additems['NAME'],$additems['QUANTITY'],$additems['SIZE'],$additems['FOR'],$additems['PRICE'],$additems['TOTAL'])";


试试这个,这应该工作。
随时询问您是否对此有任何疑问。

07-28 02:59
查看更多