Re: [NEWBIE] Trying to combine array into one string

From: Date: Tue, 15 Feb 2005 18:12:54 +0000
Subject: Re: [NEWBIE] Trying to combine array into one string
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-208753@lists.php.net to get a copy of this message
Dave wrote:
PHP General, The Situation: I'm retrieving some email addresses from a database. I want to be able assemble all the addresses into one string that I can use in the mail() command. At no time should there ever be more than about 5 email addresses collected from the database. I want all addresses to appear in the "To:" field so everyone receiving the email will know who else has a copy. The Problem: I can't quite figure out how to take the results of the mysql_query() and assemble them into a string. In my experiments so far, I either get a "mysql_data_seek(): Offset 0 is invalid for MySQL result index" error, or my mail function sends to a blank address. What I've Tried So Far: My own code is obviously flawed in syntax in logic, so I searched the manual and this list's archives under the terms "array", "concatenate", "convert", "append" and "string" in various combinations. However, while I learned some interesting tips on a variety of topics, I suspect I'm missing some essential description that will lead me to the command I need. The Question: How do I take the contents of an array and turn them into a single string? For Reference: Here is the code I have. I know it's flawed, but hopefully it will give an indication of what I'm trying to achieve: --code-- $tantoQuery = "SELECT forum_members.emailAddress AS email FROM forum_members, event_tanto WHERE forum_members.ID_MEMBER = event_tanto.tanto AND event_tanto.event ='" . $show . "'"; $tantoResult = mysql_query($tantoQuery); while ($tantoData = mysql_fetch_array($tantoResult)) {
       $tantoEmail = $tantoEmail . "," . $tantoData;
}
$tantoData is an array so you can't just concat it into a string. change the body of the while loop to something like: if (!isset($tantoEmail)) { $tantoEmail = $tantoData['email'];
        } else {
$tantoEmail .= "," . $tantoData['email']; } or do something like.... $tantoEmail = array(); while ($tantoData = mysql_fetch_array($tantoResult)) { $tantoEmail[] = $tantoData['email']; } if ($tantoEmail = join(',',$tantoEmail)) { mail($tantoEmail, $subject, $mailcontent, $addHeaders); }
mail($tantoEmail, $subject, $mailcontent, $addHeaders); --code-- Any help would be much appreciated.


« previous php.general (#208753) next »