我有一个textarea,会员尽可能多地填写电子邮件。
<textarea name="emailRefer"> </textarea>
<input type="submit"/>
当用户填写电子邮件时,例如10封电子邮件
<textarea name="emailRefer">klaudia@yahoo.com, diaklau@ya.com, kaludi@hoo.com, and so on </textarea>
<input type="submit"/>
如果我发布了这段代码:
$ReferalEmail = $_POST['emailRefer'];
if ($result = $mysqli->query("INSERT INTO ReferalTable (ReferalEmail)
VALUES ('$ReferalEmail');"))
上面的代码会将文本区域中的所有电子邮件一行插入ReferalEmail列。
但是现在当会员发布它时,我希望它发布为数组。
我的意思是作为一个数组,每封电子邮件都将插入一行。如果文本区域中有10封电子邮件,则每封电子邮件将插入10行。
如何做到这一点,任何人都可以帮助我吗?提前致谢。
[UPDATE]
我已经尝试了这个代码的答案,但它在每个第一行给了我一个空白行。
$ReferalEmail = $_POST['emailRefer'];
$emails=explode(",",$ReferalEmail);
foreach ($emails as $email)
{
$result = $mysqli->query("INSERT INTO ReferalTable (ReferalEmail)
VALUES ('$email');")
}
答案 0 :(得分:2)
如果您要通过昏迷,
分隔电子邮件,则可以explode
值:
$ReferalEmail = $_POST['emailRefer'];
$emails=explode(",",$ReferalEmail);
foreach ($emails as $email)
{
$result = $mysqli->query("INSERT INTO ReferalTable (ReferalEmail)
VALUES ('$email');")
}
当然,您应该在插入数据库之前清理输入。
答案 1 :(得分:1)
试试这个:
$ReferalEmail = trim(preg_replace("/\s+/","",$_POST['emailRefer']));
$emails=explode(",",$ReferalEmail);
foreach ($emails as $email)
{
if($email!=""){
$result = $mysqli->query("INSERT INTO ReferalTable (ReferalEmail)
VALUES ('$email');")
}
}