0

そうです、データベースの1つのテーブルに配列があります。この配列を分解して、その1ビットを使用してデータベース内の別のテーブルから情報を取得し、その情報を含む電子メールを送信できるようにする必要があります。

テーブル内の私の配列は次のようになります

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

これで2つの変数が得られると思いました。 $product_id30になり、$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_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);

私のexplode()はありますか?それとも何か他のものですか?

これは絶対に私の脳を殺しています、私は何時間もそれに取り組んできました。助けてください!:)

4

3 に答える 3

3

試す$prod_quant_array = explode("-", $prod_quant_array);

補足として、数量フィールドを追加してデータベースを正規化し、現在のフィールドに製品 ID のみを保持させる必要があります。そうすれば、別のクエリを送信するのではなく、同じクエリで製品価格を結合することもできます。

于 2012-10-31T15:26:42.217 に答える
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 に答える
1

私はあなたが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 に答える