2012-03-22 15 views
0

データベースを検索し、名前、電子メールアドレス、年の3つのフィールドを取得するアプリケーションがあります。PHPクエリの結果を1つの文字列に結合する

私はテーブルにそれらを入れて、MAILTOがしたい:すべての電子メールアドレス、それに取得したがカンマで区切らを持っているリンク..

例えば、このようなものを。

<a href=mailto:" .$row['Email']. ">" .$row['Email']. "</a> 

とのリンクは実際にこのようになりますのmailto:ジョン@ yahoo.com、ボブ@ gmail.com、カイル@ microsoft.com

任意のアイデア?

+0

を私はSQLでひどいんだけど、あなた'mysql_fetch_assoc'を使い、' echo implode( '、'、$ arr ['Email']) 'を使うことができます。 – mowwwalker

答えて

0

join()機能が必要だと思います。たとえば、次のように

$mailtolist = join(",",$queryresult); 
+1

も動作します。joinはimplodeのエイリアスです。 –

1

あなただけの配列を内破、その後のメールの配列を構築することができます:

while ($row = mysql_fetch_row()) { 
    $emails[] = $row['Email']; 
} 

var_dump(implode(',', $emails)); 
+0

なぜ 'mysql_fetch_assoc'を使わないのですか?それは同じことをしていませんか? – mowwwalker

+0

これもうまくいくでしょう...長い間、生のmysql * fetcherを使用していません(pdoとorms)。実際に行のコードにそのコードを含めなかったので、行をループするというアイデアを示すだけです。 –

+0

申し訳ありません、ありがとうございます。 SQLは、私が取りやめてきたものの1つで、私が始める前にSOの知恵の一部を集めようとしています。 – mowwwalker

0

この構文は明確で、場所にのみ変数をエコー

<a href="mailto:<?php echo $row['Email'] ?>"><?php echo $row['Email'] ?></a> 

この方法を試してみてくださいあなたの代わりにしたいです行全体がエコーされます。

0

ただ、連結このような電子メール:

// loop over the rows 
    $rows = // resultset 
    for ($row in $rows) { 
    $email = $row['email'] . "," 
    } 

    // trim last comma 

    // create href 
    $desc = "this is the link description" 
    href = "<a href=\"mailto:$email\">$desc</a>" 

    // or 
    <a href="mailto:<?= $email ?>">link description</a> 
0

ビルマイク・パーセルの答えに、あなたはこれを行うことができます。

<?php 
    while ($row = mysql_fetch_row) { 
     $emails[] = $row['Email']; 
    } 
    $emailsString = implode(',', $emails); 
?> 
<a href="mailto:<?php echo $emailsString ?>"><?php echo $emailsString ?></a> 
+0

もし私がそれを行うなら、私はmailto:Arrayを得ますか? – SteveU

+0

それはしてはいけません。 'implode'は配列ではなく文字列を返すべきです。また、私はMike Purcellの答えを構築していたので、mysql_fetch_rowを使っていました。 mysqlからデータを取得していない可能性がありますので、使用しているものに合わせてください。 –

関連する問題