• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 221
  • Last Modified:

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.
0
kenitech
Asked:
kenitech
1 Solution
 
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
 
kenitechAuthor Commented:
hey, i'm totally sorry. i'm using PHP.
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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
 
CetusMODCommented:
PAQed with points refunded (125)

CetusMOD
Community Support Moderator
0

Featured Post

How to Use the Help Bell

Need to boost the visibility of your question for solutions? Use the Experts Exchange Help Bell to confirm priority levels and contact subject-matter experts for question attention.  Check out this how-to article for more information.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now