0

ユーザーID番号を含むセッション配列[カート]があります。セッションの連絡先ID番号=データベースのcontact_idである連絡先テーブルから電子メールアドレスのリストを生成しようとしています。

これが私のコードです。

// Find cart members from the session array
foreach ($_SESSION['cart'] as $key=>$val) {
    $contactid = $val;

    // Query the database for cart members
    $cartresult = mysql_query("SELECT contact.email FROM contact WHERE contact.contact_id = '$contactid'");
    $emailresult = mysql_query($emailquery) or DIE (mysql_error());
    while ($r = mysql_fetch_array($emailresult)) { 
        $emailAry[] = $r['email']; 
    }
}

// Create comma separated list from email array
if (count($emailAry)) {
    $list = implode(", ", $emailAry);

    $list = str_replace(" ,", "", $list);

if ステートメントが無視されているため、明らかに $emailAry の値はありません。

これはなぜでしょうか?

4

3 に答える 3

1

$emailquery私の観点からは未定義です。

    $emailAry = array();

    // Find cart members from the session array
    foreach ($_SESSION['cart'] as $key=>$val) {
        $cartresult = mysql_query("SELECT email FROM contact WHERE contact_id = '$val'");
        while ($r = mysql_fetch_array($cartresult)) { 
            $emailAry[] = $r['email']; 
        }
    }

    // Create comma separated list from email array
    if (count($emailAry)) {
        $list = implode(",", $emailAry);

        // no need to replace ', ' with '', implode will do all the job creating a CSV :)
        //$list = str_replace(" ,", "", $list);
    }
于 2012-10-12T20:11:31.613 に答える
0

外側のスコープで配列を宣言し$emailAryます。これにより、次のように、whileとforeachのコードから配列にアクセスできるようになります。

$emailAry = array();
foreach ($_SESSION['cart'] as $key=>$val) {
...
...
于 2012-10-12T20:06:18.370 に答える
0

これを使用すると、簡単で高速です

 $to = '';
 foreach ($result->result() as $row){
    $to .=  $row->id.',';            
 }

 $to = rtrim($to,',');

あなたに合わせて変更してください。

于 2013-11-13T22:00:01.293 に答える