【问题标题】:Sending delimited from textarea to mysql. Column by "," and row by "\n"从 textarea 发送分隔符到 mysql。以“,”为列,以“\n”为行
【发布时间】:2013-05-13 16:40:04
【问题描述】:

我需要用户能够以以下格式将数据输入到文本区域中。

姓名,电子邮件@email.com

姓名,电子邮件@email.com

姓名,电子邮件@email.com

然后将信息发送到 mysql 数据库。我的问题是我想将正确的名称放入第一列,将正确的电子邮件放入第二列。然后,当我遇到换行符时,我希望它开始一个新行。

有人可以帮忙吗?谢谢!

【问题讨论】:

标签: php mysql text input delimited


【解决方案1】:

正如其他人所说,您可以使用 explode 将结果放入数组中,但是这种方法的问题是不能保证用户会以正确的顺序输入信息。

我会做的就是这个。它仍然不是万无一失的(并且使用单独的输入会更好)但它更好。

<?php

$textareastring = $_POST['textareaname'];

$array = explode("\n",$textareastring );

foreach($array as $value) {
 $data = explode(',',$value);
 if (strpos($data[1], '@'))
 {
   $name = $data[0];
   $email = $data[1];
 }else{
   $name = $data[1];
   $email = $data[0];
 }
}
?>

【讨论】:

    【解决方案2】:

    我会使用explode() 来分隔不同的行,然后是字段。像这样:

        $lines = explode("\n", $_POST['textarea']);
        foreach($lines as $line) {
            $fields = explode(',', $line);
            $name = $fields[0];
            $email = $fields[1];
    
            // DO YOUR MYSQL STUFF HERE
        }
    

    可能有更好的方法,但这对你有用。

    【讨论】:

      【解决方案3】:
      <?php
      $textareastring = $_POST['textareaname'];
      
      $array = explode("\n",$textareastring );
      
      foreach($array as $value) {
       $data = explode(',',$value);
       $name = $data[0];
       $email = $data[1];
      
      //Your mysql query goes here
      }
      ?>
      

      【讨论】:

      • 感谢您的帮助。我让它工作了,但这段代码让我走上了一条更好、更简单的轨道!
      猜你喜欢
      • 2014-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-30
      • 1970-01-01
      相关资源
      最近更新 更多