爆炸数组生成两个变量,这样我就可以从数据库表中获取信息以发送电子邮件

时间:2012-10-31 15:24:57

标签: php mysql database arrays web

是的,所以我的数据库中的一个表中有一个数组。我需要拆开这个数组,以便我可以使用它来从我的数据库中的另一个表中获取信息,然后发送包含该信息的电子邮件。

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

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_quantity为1

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

$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_name$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);

我的爆炸()? 或者是别的什么?

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

我认为你误解了爆炸()

你需要将爆炸分配给变量,然后该变量将采用爆炸创建的值数组......

而不是:

(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];

答案 2 :(得分: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];