Insert multiple comma or linebreak seperated values from textarea into MySQL

I have a mailing tool that I want to allow users to paste in multiple email addresses.
For arguments sake, let's say the are seperated by linebreaks.

example:
<textarea name="emails">
email1@host.com
email2@host.com
email3@host.com
</textare>

On submit I would like the emails to be added one by one in a loop. Each name is a new row in my table and the email is added to the field 'email'. I'm assuming the values need to be put into an array, and then for the number of values in the array (x), the sequel will run x times. I just don't know the exact syntax.
kenitechAsked:
Who is Participating?
 
CetusMODCommented:
PAQed with points refunded (125)

CetusMOD
Community Support Moderator
0
 
ExpertAdminCommented:
It would be good to know what programming language you are using for the database interaction. If you are using ASP, you can use the <b>Join() </b> method of the string object to turn the textarea text into an array, then loop through the array as you indicated.

M@
0
 
lojk.Net and Infrastructure ConsultantCommented:
in ASP/VB(.net) this can be done with

ResultText=Replace(OriginalText,vbCRLF,",")

which would replace all CRLF with commas and ResultText will equal  

<textarea name="emails">email1@host.com,email2@host.com,email3@host.com,</textare>

Better Still..

ResultTextArray as String()=split (OriginalText,vbcrlf)
 
for tCount as integer = 1 to ResultTextArray.length
DoWhateveroperationYouAreTryToDo(ResultextArray(tCount))
next

Is that what you mean?
0
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

 
kenitechAuthor Commented:
hey, i'm totally sorry. i'm using PHP.
0
 
ExpertAdminCommented:
hmmm...

I have to let a PHP person handle this one then.

M@
0
 
ExpertAdminCommented:
It looks like you could use a preg_split function in PHP to get the array, then use a for...each contruct to insert each element.

I don't use PHP much so this is based on some research and I am sure of the exact syntax.

M@
0
 
kenitechAuthor Commented:
hey, i just solved this one.
here's a solution that seems to work.
do i close this question??
i probably should've posted it in PHP in the first place..

//Characters to delimit by
$patterns[0] = '/,/';
$patterns[1] = '/:/';
$patterns[2] = '/\n/';

//the form post variable
$emails_added = $_POST["add_mail"];

//split out the values on an array bases on the above
$emails_split = explode(',' , preg_replace($patterns,',', $emails_added));

//loop through insert based on number of values in array
for ($i=0; $i<count($emails_split); ) {
     $db->execute("insert into my_mailer (email) values ('" . $emails_split[$i] . "')");
     $i++;
}
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.