0

对,所以我在数据库的一个表中有一个数组。我需要将这个数组分开,这样我就可以使用其中的一部分从数据库中的另一个表中获取信息,然后发送一封包含该信息的电子邮件。

我在表格中的数组看起来像这样

30-1,

30 是产品 ID,1 是数量。(购买的商品数量)

我是个布偶,弄错了吗?

//Get product_id_array of item purchased
$sql = mysql_query("SELECT product_id_array FROM transactions WHERE id='$orderID'")or die(mysql_error());
while($row = mysql_fetch_array($sql)){
    $prod_quant_array = $row['product_id_array'];
}
//Explode prod_quant_array
(explode("-", $prod_quant_array));
$product_id = $prod_quant_array[0];
$product_quantity = $prod_quant_array[1];

我认为这会给我两个变量。 $product_id将是 30 和$product_quantity1

然后我尝试使用这些信息从另一个表中获取更多信息。

$sql = mysql_query("SELECT product_name, product_price FROM products WHERE id='$product_id'")or die(mysql_error());
while($row = mysql_fetch_array($sql)){
    $product_name = $row['product_name'];
    $product_price = $row['product_price'];
}

如您所见,我的 WHERE 正在查看 $product_id 变量。因此,当我尝试发送电子邮件时,我收到了电子邮件,但看不到$product_nameor $product_price。请忽略那些其他变量,它们在电子邮件中显示良好并且来自不同的查询。

/////// Send Email ///////
$to = "" . $payer_email . "";
$subject = "Confirmation of your order";
$message .= "Dear " . $first_name . " " . $last_name . ",

This is an email to confirm your recent purchase of goods with Bloodlust.

You have ordered: 

--------------------------------------------------
" . $product_name . ".

" . $product_price . "
--------------------------------------------------

Please keep this email for your records.

Please note that this is not a proof of transaction.

Thank you.";
$from = "no-reply@blood-lust.com";
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);

是我的 explode() 吗?或者是别的什么?

这绝对是在扼杀我的大脑,我已经做了好几个小时了。请帮忙!:)

4

3 回答 3

3

尝试$prod_quant_array = explode("-", $prod_quant_array);

作为旁注,您应该通过添加数量字段来真正规范您的数据库,并让当前字段仅包含产品 ID。这样,您还可以在同一个查询中加入产品价格,而不是发送另一个。

于 2012-10-31T15:26:42.217 回答
1

我想你误解了 explode()

您需要将explode分配给一个变量,然后该变量将采用explode创建的一组值......

代替:

(explode("-", $prod_quant_array));
$product_id = $prod_quant_array[0];
$product_quantity = $prod_quant_array[1];

做:

$theArray = (explode("-", $prod_quant_array));
$product_id = $theArray[0];
$product_quantity = $theArray[1];
于 2012-10-31T15:28:50.007 回答
1

你有一个错误。换行

(explode("-", $prod_quant_array));
$product_id = $prod_quant_array[0];
$product_quantity = $prod_quant_array[1];

$prod_quant_array = explode("-", $prod_quant_array);
$product_id = $prod_quant_array[0];
$product_quantity = $prod_quant_array[1];
于 2012-10-31T15:29:46.713 回答